A LinearPlaybackControl plugin for Thunder framework.
The table below lists configuration options of the plugin.
| Name | Type | Description |
|---|---|---|
| callsign | string | Plugin instance name (default: LinearPlaybackControl) |
| classname | string | Class name: LinearPlaybackControl |
| locator | string | Library name: libWPEFrameworkLinearPlaybackControl.so |
| autostart | boolean | Determines if the plugin shall be started automatically along with the framework |
The following properties are provided by the LinearPlaybackControl plugin:
LinearPlaybackControl interface properties:
| Property | Description |
|---|---|
| channel | Current channel |
| seek | TSB seek position offset, from live position, in seconds |
| trickPlay | Trick play speed and direction |
| status RO | Current TSB status information containing buffer size, seek position and health status |
| tracing | Tracing enable/disable flag |
Provides access to the current channel.
No Events
| Name | Type | Description |
|---|---|---|
| (property) | object | Current channel |
| (property).channel | string | Channel address |
The muxid argument shall be passed as the index to the property, e.g. LinearPlaybackControl.1.channel@0.
| Code | Message | Description |
|---|---|---|
| 30 | ERROR_BAD_REQUEST |
Bad JSON param data format. |
| 39 | ERROR_READ_ERROR |
Error reading file or parsing one or more values. |
| 40 | ERROR_WRITE_ERROR |
Error writing to file. |
{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.channel@0"
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"channel": "chan_select"
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.channel@0",
"params": {
"channel": "chan_select"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": "null"
}Provides access to the TSB seek position offset, from live position, in seconds.
No Events
| Name | Type | Description |
|---|---|---|
| (property) | object | TSB seek position offset, from live position, in seconds |
| (property).seekPosInSeconds | number | TSB seek position offset from live in seconds. The value must be an unsigned integer. If the value exceeds the current TSB size, the seek position will be reduced accordingly |
The muxid argument shall be passed as the index to the property, e.g. LinearPlaybackControl.1.seek@0.
| Code | Message | Description |
|---|---|---|
| 30 | ERROR_BAD_REQUEST |
Bad JSON param data format. |
| 39 | ERROR_READ_ERROR |
Error reading file or parsing one or more values. |
| 40 | ERROR_WRITE_ERROR |
Error writing to file. |
{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.seek@0"
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"seekPosInSeconds": 0
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.seek@0",
"params": {
"seekPosInSeconds": 0
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": "null"
}Provides access to the trick play speed and direction.
No Events
| Name | Type | Description |
|---|---|---|
| (property) | object | Trick play speed and direction |
| (property).speed | number | Trick play speed. The direction is defined by the sign of speed, where a negative value means rewind and positive value means fast forward |
The muxid argument shall be passed as the index to the property, e.g. LinearPlaybackControl.1.trickPlay@0.
| Code | Message | Description |
|---|---|---|
| 30 | ERROR_BAD_REQUEST |
Bad JSON param data format. |
| 39 | ERROR_READ_ERROR |
Error reading file or parsing one or more values. |
| 40 | ERROR_WRITE_ERROR |
Error writing to file. |
{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.trickPlay@0"
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"speed": -4
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.trickPlay@0",
"params": {
"speed": -4
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": "null"
}Provides access to the current TSB status information containing buffer size, seek position and health status.
This property is read-only.
No Events
| Name | Type | Description |
|---|---|---|
| (property) | object | Current TSB status information containing buffer size, seek position and health status |
| (property).maxSizeInBytes | number | Maximum TSB size in bytes |
| (property).currentSizeInBytes | number | Current TSB size in bytes |
| (property).currentSizeInSeconds | number | Current TSB size in seconds |
| (property).seekPosInBytes | number | Current TSB seek position offset from live in bytes. The value is an unsigned integer and cannot exceed the current TSB size in bytes |
| (property).seekPosInSeconds | number | Current TSB seek position offset from live in seconds. The value is an unsigned integer and cannot exceed the current TSB size in seconds |
| (property).trickPlaySpeed | number | Current trick play speed and direction. The direction is defined by the sign of speed, where a negative value means rewind and positive value means fast forward |
| (property).streamSourceLost | boolean | Boolean indicating if the buffer source is lost (true) as a result of e.g. network connectivity issues or not (false) |
| (property).streamSourceLossCount | number | Number of times the streaming is lost and the TSB stopped receiving data from the stream source, during a valid channel selected |
The muxid argument shall be passed as the index to the property, e.g. LinearPlaybackControl.1.status@0.
| Code | Message | Description |
|---|---|---|
| 39 | ERROR_READ_ERROR |
Error reading file or parsing one or more values. |
{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.status@0"
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"maxSizeInBytes": 0,
"currentSizeInBytes": 0,
"currentSizeInSeconds": 0,
"seekPosInBytes": 0,
"seekPosInSeconds": 0,
"trickPlaySpeed": -4,
"streamSourceLost": false,
"streamSourceLossCount": 0
}
}Provides access to the tracing enable/disable flag.
No Events
| Name | Type | Description |
|---|---|---|
| (property) | object | Tracing enable/disable flag |
| (property).tracing | boolean | Tracing enable (true) / disable (false) |
| Code | Message | Description |
|---|---|---|
| 1 | ERROR_GENERAL |
General failure. |
| 30 | ERROR_BAD_REQUEST |
Bad JSON param data format. |
{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.tracing"
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"tracing": true
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "LinearPlaybackControl.tracing",
"params": {
"tracing": true
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": "null"
}Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.
The following events are provided by the LinearPlaybackControl plugin:
LinearPlaybackControl interface events:
| Event | Description |
|---|---|
| speedchanged | Indicates that the trick play speed has changed |
Indicates that the trick play speed has changed.
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.speed | number | New trick play speed. The direction is defined by the sign of speed, where a negative value means rewind and positive value means fast forward |
| params.muxId | number | Stream muxId |
{
"jsonrpc": "2.0",
"method": "client.events.speedchanged",
"params": {
"speed": -4,
"muxId": 0
}
}