DTV API
Version: 1.0
Status:
DTV plugin for Thunder framework.
Table of Contents
Introduction
Scope
This document describes purpose and functionality of the DTV plugin. It includes detailed specification about its configuration, methods and properties as well as sent notifications.
Case Sensitivity
All identifiers of the interfaces described in this document are case-sensitive. Thus, unless stated otherwise, all keywords, entities, properties, relations and actions should be treated as such.
Acronyms, Abbreviations and Terms
The table below provides and overview of acronyms used in this document and their definitions.
Acronym | Description |
---|---|
API | Application Programming Interface |
HTTP | Hypertext Transfer Protocol |
JSON | JavaScript Object Notation; a data interchange format |
JSON-RPC | A remote procedure call protocol encoded in JSON |
The table below provides and overview of terms and abbreviations used in this document and their definitions.
Term | Description |
---|---|
callsign | The name given to an instance of a plugin. One plugin can be instantiated multiple times, but each instance the instance name, callsign, must be unique. |
References
Ref ID | Description |
---|---|
HTTP | HTTP specification |
JSON-RPC | JSON-RPC 2.0 specification |
JSON | JSON specification |
Thunder | Thunder API Reference |
Description
The DTV
plugin provides access to DVB services provided by a DVB stack.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].
Configuration
The table below lists configuration options of the plugin.
Name | Type | M/O | Description |
---|---|---|---|
classname | string | mandatory | Class name: DTV |
startmode | string | mandatory | Determines in which state the plugin should be moved to at startup of the framework |
Interfaces
This plugin implements the following interfaces:
- DTV.json (version 1.0.0) (uncompliant-collapsed format)
Methods
The following methods are provided by the DTV plugin:
DTV interface methods:
Method | Description |
---|---|
addLnb | Add a new LNB to the database |
addSatellite | Add a new satellite to the database |
startServiceSearch | Starts a service search |
finishServiceSearch | Finishes a service search |
startPlaying | Starts playing the specified service |
stopPlaying | Stops playing the specified service |
addLnb method
Add a new LNB to the database.
Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.name | string | mandatory | User specified name for the LNB settings |
params.type | string | mandatory | LNB type (must be one of the following: single, unicable, universal) |
params.power | string | mandatory | LNB power values (must be one of the following: auto, off, on) |
params.diseqc_tone | string | mandatory | Diseqc Tone (must be one of the following: a, b, off) |
params.diseqc_cswitch | string | mandatory | Diseqc cswitch (must be one of the following: a, b, c, d, off) |
params.is22k | boolean | mandatory | 22kHz tone on/off |
params.is12v | boolean | mandatory | 12 volts on/off |
params.ispulseposition | boolean | mandatory | Pulse position motor used to control dish position |
params.isdiseqcposition | boolean | mandatory | Dish positioning is controlled by DiSEqC |
params.issmatv | boolean | mandatory | SMATV switcher on/off |
params.diseqcrepeats | integer | mandatory | Number of times to send a DiSEqC message to make sure it's been received |
params.u_switch | integer | mandatory | DiSEqC uncommitted switch selector |
params.unicablechannel | integer | mandatory | Unicable channel |
params?.unicablefreq | integer | optional | Unicable frequency |
Result
Name | Type | M/O | Description |
---|---|---|---|
result | boolean | mandatory | Return true if the LNB is added, false otherwise |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.addLnb",
"params": {
"name": "Universal",
"type": "universal",
"power": "auto",
"diseqc_tone": "off",
"diseqc_cswitch": "off",
"is22k": false,
"is12v": false,
"ispulseposition": false,
"isdiseqcposition": false,
"issmatv": false,
"diseqcrepeats": 0,
"u_switch": 0,
"unicablechannel": 0,
"unicablefreq": 0
}
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": true
}
addSatellite method
Add a new satellite to the database.
Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.name | string | mandatory | User specified name for the satellite settings |
params.longitude | integer | mandatory | Longitudinal location of the satellite in 1/10ths of a degree, with an east coordinate given as a positive value and a west coordinate as negative. Astra 28.2E would be defined as 282 and Eutelsat 5.0W would be -50 |
params.lnb | string | mandatory | Name of the LNB settings to be used when tuning to this satellite |
Result
Name | Type | M/O | Description |
---|---|---|---|
result | boolean | mandatory | Return true if the satellite is added, false otherwise |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.addSatellite",
"params": {
"name": "Astra 28.2E",
"longitude": 282,
"lnb": "Universal"
}
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": true
}
startServiceSearch method
Starts a service search.
Also see: searchstatus, serviceupdated
Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.tunertype | string | mandatory | Tuner type (must be one of the following: dvbc, dvbs, dvbt, none) |
params.searchtype | string | mandatory | Supported Search Type (must be one of the following: frequency, network) |
params.retune | boolean | mandatory | Set to true if current services are to be replaced in the database, false if the scan is to update the existing services |
params.usetuningparams | boolean | mandatory | Set to true if the optional tuning parameters are defined |
params?.dvbstuningparams | object | optional | Parameters required to tune to a DVB-S/S2 signal |
params?.dvbstuningparams.satellite | string | mandatory | Name of the satellite settings to be used |
params?.dvbstuningparams.frequency | integer | mandatory | Frequency of the transponder, in kHz |
params?.dvbstuningparams.polarity | string | mandatory | Polarity setting (must be one of the following: horizontal, left, right, vertical) |
params?.dvbstuningparams.symbolrate | integer | mandatory | Symbol rate in Ksymb/sec |
params?.dvbstuningparams.fec | string | mandatory | Forward error correction setting (must be one of the following: fec1_2, fec1_3, fec1_4, fec2_3, fec2_5, fec3_4, fec3_5, fec4_5, fec5_6, fec7_8, fec8_9, fec9_10, fecauto) |
params?.dvbstuningparams.modulation | string | mandatory | DVB S Modulation supported by the platform (must be one of the following: 16qam, 8psk, auto, qpsk) |
params?.dvbstuningparams.dvbs2 | boolean | mandatory | True when tuning to a DVB-S2 signal |
params?.dvbctuningparams | object | optional | Parameters required to tune to a DVB-C signal |
params?.dvbctuningparams.frequency | integer | mandatory | Frequency of the transport, in Hz |
params?.dvbctuningparams.symbolrate | integer | mandatory | Symbol rate in Ksymb/sec |
params?.dvbctuningparams.modulation | string | mandatory | DVB C Modulation supported by the platform (must be one of the following: 128qam, 16qam, 256qam, 32qam, 4qam, 64qam, 8qam, auto) |
params?.dvbttuningparams | object | optional | Parameters required to tune to a DVB-T/T2 signal |
params?.dvbttuningparams.frequency | integer | mandatory | Frequency of the transport, in Hz |
params?.dvbttuningparams.bandwidth | string | mandatory | Channel bandwidth (must be one of the following: 10MHz, 5MHz, 6MHz, 7MHz, 8MHz, undefined) |
params?.dvbttuningparams.mode | string | mandatory | OFDM mode (must be one of the following: ofdm_16K, ofdm_1K, ofdm_2K, ofdm_32K, ofdm_4K, ofdm_8K, undefined) |
params?.dvbttuningparams.dvbt2 | boolean | mandatory | True when tuning to a DVB-T2 signal |
params?.dvbttuningparams?.plpid | integer | optional | PLP ID for tuning to a DVB-T2 signal |
Result
Name | Type | M/O | Description |
---|---|---|---|
result | boolean | mandatory | Return true if the search is started, false otherwise |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.startServiceSearch",
"params": {
"tunertype": "dvbs",
"searchtype": "network",
"retune": false,
"usetuningparams": true,
"dvbstuningparams": {
"satellite": "Astra 28.2",
"frequency": 10714000,
"polarity": "horizontal",
"symbolrate": 22000,
"fec": "fec5_6",
"modulation": "qpsk",
"dvbs2": false
},
"dvbctuningparams": {
"frequency": 474000000,
"symbolrate": 6900,
"modulation": "128qam"
},
"dvbttuningparams": {
"frequency": 474000000,
"bandwidth": "8MHz",
"mode": "ofdm_32K",
"dvbt2": false,
"plpid": 0
}
}
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": true
}
finishServiceSearch method
Finishes a service search.
Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.tunertype | string | mandatory | Tuner type (must be one of the following: dvbc, dvbs, dvbt, none) |
params.savechanges | boolean | mandatory | Set true if the services found during the search should be saved |
Result
Name | Type | M/O | Description |
---|---|---|---|
result | boolean | mandatory | Return false if the tunertype isn't valid, true otherwise |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.finishServiceSearch",
"params": {
"tunertype": "dvbs",
"savechanges": true
}
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": true
}
startPlaying method
Starts playing the specified service.
Also see: serviceupdated, eventchanged, videochanged, audiochanged, subtitleschanged
Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params?.dvburi | string | optional | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params?.lcn | integer | optional | LCN of the service to be tuned to |
params?.monitoronly | boolean | optional | (Version 2) set to 'true' to monitor SI/PSI data only. Will default to 'false' if not defined |
Result
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | The play handle assigned to play the given service. Will be -1 if the service can't be played |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.startPlaying",
"params": {
"dvburi": "2.2041.9212",
"lcn": 0,
"monitoronly": true
}
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
stopPlaying method
Stops playing the specified service.
Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | integer | mandatory | The play handle returned by startPlaying |
Result
Name | Type | M/O | Description |
---|---|---|---|
result | null | mandatory | Always null (default: None) |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.stopPlaying",
"params": 0
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
Properties
The following properties are provided by the DTV plugin:
DTV interface properties:
Property | R/W | Description |
---|---|---|
numberOfCountries | read-only | Number of country configurations available |
countryList | read-only | Array containing the name and 3 character ISO country code for all the available country configurations |
country | read/write | Country configuration using the ISO 3-character country code |
lnbList | read-only | Array of LNBs defined in the database |
satelliteList | read-only | Array of satellites defined in the database |
numberOfServices | read-only | Total number of services in the service database |
serviceList | read-only | List of services for the given type of tuner, transport (version 2), or all services if neither is given |
serviceInfo | read-only | Information for the given service as defined by its DVB triplet URI |
serviceComponents | read-only | (Version 2) array of components for the given service defined by its URI |
transportInfo | read-only | Information for the given transport as defined by its DVB doublet URI |
nowNextEvents | read-only | Now and next events (EITp/f) for the given service |
scheduleEvents | read-only | Events which are scheduled (EITsched) for the given service |
extendedEventInfo | read-only | Extended event info for the given service and event ID (version 2) |
status | read-only | Information related to the play handle defined by the index |
signalInfo | read-only | Strength and quality of the currently tuned signal for the given play handle (version 2) |
numberOfCountries property
Provides access to the number of country configurations available.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | Number of country configurations available |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.numberOfCountries"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 5
}
countryList property
Provides access to the array containing the name and 3 character ISO country code for all the available country configurations.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | List of available country configurations |
(property)[#] | object | mandatory | ... |
(property)[#].name | string | mandatory | Name of the country as a UTF-8 string |
(property)[#].code | integer | mandatory | 3-character ISO code for the country |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.countryList"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"name": "UK",
"code": 6775410
}
]
}
country property
Provides access to the country configuration using the ISO 3-character country code.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | 3-character ISO code for the country |
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | 3-character ISO code for the country |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.country"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 6775410
}
Set Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.country",
"params": 6775410
}
Set Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "null"
}
lnbList property
Provides access to the array of LNBs defined in the database.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | Array of LNBs defined in the database |
(property)[#] | object | mandatory | ... |
(property)[#].name | string | mandatory | User specified name for the LNB settings |
(property)[#].type | string | mandatory | LNB type (must be one of the following: single, unicable, universal) |
(property)[#].power | string | mandatory | LNB power values (must be one of the following: auto, off, on) |
(property)[#].diseqc_tone | string | mandatory | Diseqc Tone (must be one of the following: a, b, off) |
(property)[#].diseqc_cswitch | string | mandatory | Diseqc cswitch (must be one of the following: a, b, c, d, off) |
(property)[#].is22k | boolean | mandatory | 22kHz tone on/off |
(property)[#].is12v | boolean | mandatory | 12 volts on/off |
(property)[#].ispulseposition | boolean | mandatory | Pulse position motor used to control dish position |
(property)[#].isdiseqcposition | boolean | mandatory | Dish positioning is controlled by DiSEqC |
(property)[#].issmatv | boolean | mandatory | SMATV switcher on/off |
(property)[#].diseqcrepeats | integer | mandatory | Number of times to send a DiSEqC message to make sure it's been received |
(property)[#].u_switch | integer | mandatory | DiSEqC uncommitted switch selector |
(property)[#].unicablechannel | integer | mandatory | Unicable channel |
(property)[#]?.unicablefreq | integer | optional | Unicable frequency |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.lnbList"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"name": "Universal",
"type": "universal",
"power": "auto",
"diseqc_tone": "off",
"diseqc_cswitch": "off",
"is22k": false,
"is12v": false,
"ispulseposition": false,
"isdiseqcposition": false,
"issmatv": false,
"diseqcrepeats": 0,
"u_switch": 0,
"unicablechannel": 0,
"unicablefreq": 0
}
]
}
satelliteList property
Provides access to the array of satellites defined in the database.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | Array of satellites defined in the database |
(property)[#] | object | mandatory | ... |
(property)[#].name | string | mandatory | User specified name for the satellite settings |
(property)[#].longitude | integer | mandatory | Longitudinal location of the satellite in 1/10ths of a degree, with an east coordinate given as a positive value and a west coordinate as negative. Astra 28.2E would be defined as 282 and Eutelsat 5.0W would be -50 |
(property)[#].lnb | string | mandatory | Name of the LNB settings to be used when tuning to this satellite |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.satelliteList"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"name": "Astra 28.2E",
"longitude": 282,
"lnb": "Universal"
}
]
}
numberOfServices property
Provides access to the total number of services in the service database.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | Total number of services in the service database |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.numberOfServices"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 145
}
serviceList property
Provides access to the list of services for the given type of tuner, transport (version 2), or all services if neither is given.
This property is read-only.
The optional tuner type, or transport dvb doublet parameter shall be passed as the index to the property, i.e.
serviceList@<optional-tuner-type,-or-transport-dvb-doublet>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
optional-tuner-type,-or-transport-dvb-doublet | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | List of services for the given type of tuner, transport (version 2), or all services if neither is given |
(property)[#] | object | mandatory | Service information |
(property)[#].fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
(property)[#].shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
(property)[#].dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
(property)[#].servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
(property)[#].lcn | integer | mandatory | Logical channel number |
(property)[#].scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
(property)[#].hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
(property)[#].hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
(property)[#].selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
(property)[#].runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.serviceList@dvbs or 9018.4161"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
]
}
serviceInfo property
Provides access to the information for the given service as defined by its DVB triplet URI.
This property is read-only.
The service uri string parameter shall be passed as the index to the property, i.e.
serviceInfo@<service-uri-string>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
service-uri-string | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | object | mandatory | Service information |
(property).fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
(property).shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
(property).dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
(property).servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
(property).lcn | integer | mandatory | Logical channel number |
(property).scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
(property).hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
(property).hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
(property).selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
(property).runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.serviceInfo@9018.4161.1001"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
}
serviceComponents property
Provides access to the (Version 2) array of components for the given service defined by its URI.
This property is read-only.
The service uri string parameter shall be passed as the index to the property, i.e.
serviceComponents@<service-uri-string>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
service-uri-string | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | (Version 2) array of components for the given service defined by its URI |
(property)[#] | object | mandatory | Video, audio, subtitle, teletext or data component info |
(property)[#].type | string | mandatory | Type of data contained in this component (must be one of the following: audio, data, subtitles, teletext, video) |
(property)[#]?.tags | array | optional | Array of component tags |
(property)[#]?.tags[#] | integer | mandatory | ... |
(property)[#].pid | integer | mandatory | PID of the component |
(property)[#]?.video | object | optional | Video related information for a video component |
(property)[#]?.video.codec | string | mandatory | Video or audio codec type (must be one of the following: aac, ac3, avs, eac3, h264, h265, heaac, heaacv2, mpeg1, mpeg2) |
(property)[#]?.audio | object | optional | Audio related information for an audio component |
(property)[#]?.audio?.codec | string | optional | Video or audio codec type (must be one of the following: aac, ac3, avs, eac3, h264, h265, heaac, heaacv2, mpeg1, mpeg2) |
(property)[#]?.audio.language | string | mandatory | ISO 3-char language code |
(property)[#]?.audio.type | string | mandatory | Type of the audio contained in the component (must be one of the following: clean, hearingimpaired, undefined, unknown, visuallyimpaired) |
(property)[#]?.audio.mode | string | mandatory | Audio mode (must be one of the following: left, mono, multichannel, right, stereo, undefined) |
(property)[#]?.subtitles | object | optional | DVB subtitle related information for a subtitle component |
(property)[#]?.subtitles.language | string | mandatory | ISO 3-char language code |
(property)[#]?.subtitles.format | string | mandatory | Intended TV format for the subtitles (must be one of the following: 16_9, 221_1, 4_3, default, hardofhearing, hardofhearing16_9, hardofhearing221_1, hardofhearing4_3, hardofhearinghd, hd) |
(property)[#]?.subtitles.compositionpage | integer | mandatory | Composition page to be used for subtitles in this component |
(property)[#]?.subtitles.ancillarypage | integer | mandatory | Ancillary page to be used for subtitles in this component |
(property)[#]?.teletext | object | optional | Teletext related information for a teletext component |
(property)[#]?.teletext.language | string | mandatory | ISO 3-char language code |
(property)[#]?.teletext.type | integer | mandatory | Type of teletext data |
(property)[#]?.teletext.magazine | integer | mandatory | Magazine number for this type and language |
(property)[#]?.teletext.page | integer | mandatory | Page number for this type and language |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.serviceComponents@9018.4161.1001"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"type": "video",
"tags": [
0
],
"pid": 1100,
"video": {
"codec": "h264"
},
"audio": {
"codec": "h264",
"language": "eng",
"type": "normal",
"mode": "left"
},
"subtitles": {
"language": "eng",
"format": "4_3",
"compositionpage": 0,
"ancillarypage": 0
},
"teletext": {
"language": "eng",
"type": 0,
"magazine": 0,
"page": 0
}
}
]
}
transportInfo property
Provides access to the information for the given transport as defined by its DVB doublet URI.
This property is read-only.
The transport uri string parameter shall be passed as the index to the property, i.e.
transportInfo@<transport-uri-string>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
transport-uri-string | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | object | mandatory | (Version 2) Details for a transport |
(property).tunertype | string | mandatory | Tuner type (must be one of the following: dvbc, dvbs, dvbt, none) |
(property).originalnetworkid | integer | mandatory | Original network ID of the transport |
(property).transportid | integer | mandatory | Transport ID of the transport |
(property).strength | integer | mandatory | Signal strength as a percentage |
(property).quality | integer | mandatory | Signal quality as a percentage |
(property)?.dvbctuningparams | object | optional | Parameters required to tune to a DVB-C signal |
(property)?.dvbctuningparams.frequency | integer | mandatory | Frequency of the transport, in Hz |
(property)?.dvbctuningparams.symbolrate | integer | mandatory | Symbol rate in Ksymb/sec |
(property)?.dvbctuningparams.modulation | string | mandatory | DVB C Modulation supported by the platform (must be one of the following: 128qam, 16qam, 256qam, 32qam, 4qam, 64qam, 8qam, auto) |
(property)?.dvbstuningparams | object | optional | Parameters required to tune to a DVB-S/S2 signal |
(property)?.dvbstuningparams.satellite | string | mandatory | Name of the satellite settings to be used |
(property)?.dvbstuningparams.frequency | integer | mandatory | Frequency of the transponder, in kHz |
(property)?.dvbstuningparams.polarity | string | mandatory | Polarity setting (must be one of the following: horizontal, left, right, vertical) |
(property)?.dvbstuningparams.symbolrate | integer | mandatory | Symbol rate in Ksymb/sec |
(property)?.dvbstuningparams.fec | string | mandatory | Forward error correction setting (must be one of the following: fec1_2, fec1_3, fec1_4, fec2_3, fec2_5, fec3_4, fec3_5, fec4_5, fec5_6, fec7_8, fec8_9, fec9_10, fecauto) |
(property)?.dvbstuningparams.modulation | string | mandatory | DVB S Modulation supported by the platform (must be one of the following: 16qam, 8psk, auto, qpsk) |
(property)?.dvbstuningparams.dvbs2 | boolean | mandatory | True when tuning to a DVB-S2 signal |
(property)?.dvbttuningparams | object | optional | Parameters required to tune to a DVB-T/T2 signal |
(property)?.dvbttuningparams.frequency | integer | mandatory | Frequency of the transport, in Hz |
(property)?.dvbttuningparams.bandwidth | string | mandatory | Channel bandwidth (must be one of the following: 10MHz, 5MHz, 6MHz, 7MHz, 8MHz, undefined) |
(property)?.dvbttuningparams.mode | string | mandatory | OFDM mode (must be one of the following: ofdm_16K, ofdm_1K, ofdm_2K, ofdm_32K, ofdm_4K, ofdm_8K, undefined) |
(property)?.dvbttuningparams.dvbt2 | boolean | mandatory | True when tuning to a DVB-T2 signal |
(property)?.dvbttuningparams?.plpid | integer | optional | PLP ID for tuning to a DVB-T2 signal |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.transportInfo@9018.4161"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"tunertype": "dvbt",
"originalnetworkid": 8204,
"transportid": 8204,
"strength": 76,
"quality": 95,
"dvbctuningparams": {
"frequency": 474000000,
"symbolrate": 6900,
"modulation": "128qam"
},
"dvbstuningparams": {
"satellite": "Astra 28.2",
"frequency": 10714000,
"polarity": "horizontal",
"symbolrate": 22000,
"fec": "fec5_6",
"modulation": "qpsk",
"dvbs2": false
},
"dvbttuningparams": {
"frequency": 474000000,
"bandwidth": "8MHz",
"mode": "ofdm_32K",
"dvbt2": false,
"plpid": 0
}
}
}
nowNextEvents property
Provides access to the now and next events (EITp/f) for the given service.
This property is read-only.
The service uri string parameter shall be passed as the index to the property, i.e.
nowNextEvents@<service-uri-string>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
service-uri-string | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | object | mandatory | Now and next events (EITp/f) for the given service |
(property)?.now | object | optional | EIT event information |
(property)?.now.name | string | mandatory | Name of the DVB event as defined in the short event descriptor |
(property)?.now.starttime | integer | mandatory | UTC start time of the event in seconds |
(property)?.now.duration | integer | mandatory | Duration of the event in seconds |
(property)?.now.eventid | integer | mandatory | ID of the event from the event information table |
(property)?.now.shortdescription | string | mandatory | Event description from the EIT short event descriptor |
(property)?.now.hassubtitles | boolean | mandatory | (Version 2) True if subtitles are available |
(property)?.now.hasaudiodescription | boolean | mandatory | (Version 2) True if audio description is available |
(property)?.now.parentalrating | integer | mandatory | (Version 2) Parental rating for the event, will be 0 if undefined |
(property)?.now.contentdata | array | mandatory | (Version 2) The first 2 4-bit values from the content descriptor as separate bytes |
(property)?.now.contentdata[#] | integer | mandatory | ... |
(property)?.now.hasextendedinfo | boolean | mandatory | (Version 2) True if there's extended event information available |
(property)?.next | object | optional | EIT event information |
(property)?.next.name | string | mandatory | Name of the DVB event as defined in the short event descriptor |
(property)?.next.starttime | integer | mandatory | UTC start time of the event in seconds |
(property)?.next.duration | integer | mandatory | Duration of the event in seconds |
(property)?.next.eventid | integer | mandatory | ID of the event from the event information table |
(property)?.next.shortdescription | string | mandatory | Event description from the EIT short event descriptor |
(property)?.next.hassubtitles | boolean | mandatory | (Version 2) True if subtitles are available |
(property)?.next.hasaudiodescription | boolean | mandatory | (Version 2) True if audio description is available |
(property)?.next.parentalrating | integer | mandatory | (Version 2) Parental rating for the event, will be 0 if undefined |
(property)?.next.contentdata | array | mandatory | (Version 2) The first 2 4-bit values from the content descriptor as separate bytes |
(property)?.next.contentdata[#] | integer | mandatory | ... |
(property)?.next.hasextendedinfo | boolean | mandatory | (Version 2) True if there's extended event information available |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.nowNextEvents@9018.4161.1001"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"now": {
"name": "Channel 4 News",
"starttime": 1587562065,
"duration": 1800,
"eventid": 3012,
"shortdescription": "The current national and world news",
"hassubtitles": false,
"hasaudiodescription": false,
"parentalrating": 12,
"contentdata": [
0
],
"hasextendedinfo": false
},
"next": {
"name": "Channel 4 News",
"starttime": 1587562065,
"duration": 1800,
"eventid": 3012,
"shortdescription": "The current national and world news",
"hassubtitles": false,
"hasaudiodescription": false,
"parentalrating": 12,
"contentdata": [
0
],
"hasextendedinfo": false
}
}
}
scheduleEvents property
Provides access to the events which are scheduled (EITsched) for the given service.
This property is read-only.
The service uri string, with optional start and end times as number of seconds utc parameter shall be passed as the index to the property, i.e.
scheduleEvents@<service-uri-string,-with-optional-start-and-end-times-as-number-of-seconds-utc>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
service-uri-string,-with-optional-start-and-end-times-as-number-of-seconds-utc | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | Events which are scheduled (EITsched) for the given service |
(property)[#] | object | mandatory | EIT event information |
(property)[#].name | string | mandatory | Name of the DVB event as defined in the short event descriptor |
(property)[#].starttime | integer | mandatory | UTC start time of the event in seconds |
(property)[#].duration | integer | mandatory | Duration of the event in seconds |
(property)[#].eventid | integer | mandatory | ID of the event from the event information table |
(property)[#].shortdescription | string | mandatory | Event description from the EIT short event descriptor |
(property)[#].hassubtitles | boolean | mandatory | (Version 2) True if subtitles are available |
(property)[#].hasaudiodescription | boolean | mandatory | (Version 2) True if audio description is available |
(property)[#].parentalrating | integer | mandatory | (Version 2) Parental rating for the event, will be 0 if undefined |
(property)[#].contentdata | array | mandatory | (Version 2) The first 2 4-bit values from the content descriptor as separate bytes |
(property)[#].contentdata[#] | integer | mandatory | ... |
(property)[#].hasextendedinfo | boolean | mandatory | (Version 2) True if there's extended event information available |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.scheduleEvents@9018.4161.1001:12345000,12346000"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"name": "Channel 4 News",
"starttime": 1587562065,
"duration": 1800,
"eventid": 3012,
"shortdescription": "The current national and world news",
"hassubtitles": false,
"hasaudiodescription": false,
"parentalrating": 12,
"contentdata": [
0
],
"hasextendedinfo": false
}
]
}
extendedEventInfo property
Provides access to the extended event info for the given service and event ID (version 2).
This property is read-only.
The service uri string and event id parameter shall be passed as the index to the property, i.e.
extendedEventInfo@<service-uri-string-and-event-id>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
service-uri-string-and-event-id | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | object | mandatory | (Version 2) Event information from the EIT extended event descriptor |
(property)?.description | string | optional | Extended event description text |
(property)?.items | array | optional | An array of extended event item |
(property)?.items[#] | object | mandatory | ... |
(property)?.items[#]?.description | string | optional | Description of the item |
(property)?.items[#]?.item | string | optional | Item text |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.extendedEventInfo@9018.4161.1001:3012"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"description": "A long event description",
"items": [
{
"description": "Actor 1",
"item": "Kermit The Frog"
}
]
}
}
status property
Provides access to the information related to the play handle defined by the index.
This property is read-only.
The play handle parameter shall be passed as the index to the property, i.e.
status@<play-handle>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
play-handle | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | object | mandatory | Information related to the play handle defined by the index |
(property).tuner | integer | mandatory | The tuner id used by the play handle |
(property).demux | integer | mandatory | The demux id used by the play handle |
(property).pmtpid | integer | mandatory | The PMT PID of the service being played |
(property).dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
(property).lcn | integer | mandatory | LCN of the service being played |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.status@0"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"tuner": 0,
"demux": 0,
"pmtpid": 1100,
"dvburi": "2.2041.9212",
"lcn": 1001
}
}
signalInfo property
Provides access to the strength and quality of the currently tuned signal for the given play handle (version 2).
This property is read-only.
The play handle parameter shall be passed as the index to the property, i.e.
signalInfo@<play-handle>
.
Index
Name | Type | M/O | Description |
---|---|---|---|
play-handle | string | mandatory | ... |
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | object | mandatory | Strength and quality of the currently tuned signal for the given play handle (version 2) |
(property).locked | boolean | mandatory | Tuned locked status |
(property).strength | integer | mandatory | The signal strength as a percentage |
(property).quality | integer | mandatory | The signal quality as a percentage |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.signalInfo@0"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"locked": false,
"strength": 76,
"quality": 95
}
}
Notifications
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 DTV plugin:
DTV interface events:
Notification | Description |
---|---|
searchstatus | Triggered during the course of a service search |
serviceupdated | (Version 2) Notification sent when details of a service have changed, such as its name, service type, running or scrambled state |
serviceadded | (Version 2) Notification sent when a new service has been dynamically added to the service list |
servicedeleted | (Version 2) Notification sent when a service has been deleted from the service list |
videochanged | (Version 2) Notification sent when the video PID or codec has changed |
audiochanged | (Version 2) Notification sent when the audio PID or codec has changed |
subtitleschanged | (Version 2) Notification sent when the subtitles have changed |
eventchanged | (Version 2) Notification sent when the EIT 'now' event is received when starting to play a service and when the 'now' event changes |
searchstatus notification
Triggered during the course of a service search.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.handle | integer | mandatory | The handle assigned for the search and to which this information is relevant |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.finished | boolean | mandatory | Set to true if the service search has finished, false otherwise |
params.progress | integer | mandatory | Progress of the search expressed as a percentage |
params?.transport | object | optional | (Version 2) Details for a transport |
params?.transport.tunertype | string | mandatory | Tuner type (must be one of the following: dvbc, dvbs, dvbt, none) |
params?.transport.originalnetworkid | integer | mandatory | Original network ID of the transport |
params?.transport.transportid | integer | mandatory | Transport ID of the transport |
params?.transport.strength | integer | mandatory | Signal strength as a percentage |
params?.transport.quality | integer | mandatory | Signal quality as a percentage |
params?.transport?.dvbctuningparams | object | optional | Parameters required to tune to a DVB-C signal |
params?.transport?.dvbctuningparams.frequency | integer | mandatory | Frequency of the transport, in Hz |
params?.transport?.dvbctuningparams.symbolrate | integer | mandatory | Symbol rate in Ksymb/sec |
params?.transport?.dvbctuningparams.modulation | string | mandatory | DVB C Modulation supported by the platform (must be one of the following: 128qam, 16qam, 256qam, 32qam, 4qam, 64qam, 8qam, auto) |
params?.transport?.dvbstuningparams | object | optional | Parameters required to tune to a DVB-S/S2 signal |
params?.transport?.dvbstuningparams.satellite | string | mandatory | Name of the satellite settings to be used |
params?.transport?.dvbstuningparams.frequency | integer | mandatory | Frequency of the transponder, in kHz |
params?.transport?.dvbstuningparams.polarity | string | mandatory | Polarity setting (must be one of the following: horizontal, left, right, vertical) |
params?.transport?.dvbstuningparams.symbolrate | integer | mandatory | Symbol rate in Ksymb/sec |
params?.transport?.dvbstuningparams.fec | string | mandatory | Forward error correction setting (must be one of the following: fec1_2, fec1_3, fec1_4, fec2_3, fec2_5, fec3_4, fec3_5, fec4_5, fec5_6, fec7_8, fec8_9, fec9_10, fecauto) |
params?.transport?.dvbstuningparams.modulation | string | mandatory | DVB S Modulation supported by the platform (must be one of the following: 16qam, 8psk, auto, qpsk) |
params?.transport?.dvbstuningparams.dvbs2 | boolean | mandatory | True when tuning to a DVB-S2 signal |
params?.transport?.dvbttuningparams | object | optional | Parameters required to tune to a DVB-T/T2 signal |
params?.transport?.dvbttuningparams.frequency | integer | mandatory | Frequency of the transport, in Hz |
params?.transport?.dvbttuningparams.bandwidth | string | mandatory | Channel bandwidth (must be one of the following: 10MHz, 5MHz, 6MHz, 7MHz, 8MHz, undefined) |
params?.transport?.dvbttuningparams.mode | string | mandatory | OFDM mode (must be one of the following: ofdm_16K, ofdm_1K, ofdm_2K, ofdm_32K, ofdm_4K, ofdm_8K, undefined) |
params?.transport?.dvbttuningparams.dvbt2 | boolean | mandatory | True when tuning to a DVB-T2 signal |
params?.transport?.dvbttuningparams?.plpid | integer | optional | PLP ID for tuning to a DVB-T2 signal |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "searchstatus",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.searchstatus",
"params": {
"handle": 0,
"eventtype": "ServiceSearchStatus",
"finished": false,
"progress": 65,
"transport": {
"tunertype": "dvbt",
"originalnetworkid": 8204,
"transportid": 8204,
"strength": 76,
"quality": 95,
"dvbctuningparams": {
"frequency": 474000000,
"symbolrate": 6900,
"modulation": "128qam"
},
"dvbstuningparams": {
"satellite": "Astra 28.2",
"frequency": 10714000,
"polarity": "horizontal",
"symbolrate": 22000,
"fec": "fec5_6",
"modulation": "qpsk",
"dvbs2": false
},
"dvbttuningparams": {
"frequency": 474000000,
"bandwidth": "8MHz",
"mode": "ofdm_32K",
"dvbt2": false,
"plpid": 0
}
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.searchstatus
.
serviceupdated notification
(Version 2) Notification sent when details of a service have changed, such as its name, service type, running or scrambled state.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.service | object | mandatory | Service information |
params.service.fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
params.service.shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
params.service.dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params.service.servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
params.service.lcn | integer | mandatory | Logical channel number |
params.service.scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
params.service.hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
params.service.hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
params.service.selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
params.service.runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "serviceupdated",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.serviceupdated",
"params": {
"eventtype": "ServiceUpdated",
"service": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.serviceupdated
.
serviceadded notification
(Version 2) Notification sent when a new service has been dynamically added to the service list.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.service | object | mandatory | Service information |
params.service.fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
params.service.shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
params.service.dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params.service.servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
params.service.lcn | integer | mandatory | Logical channel number |
params.service.scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
params.service.hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
params.service.hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
params.service.selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
params.service.runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "serviceadded",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.serviceadded",
"params": {
"eventtype": "ServiceAdded",
"service": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.serviceadded
.
servicedeleted notification
(Version 2) Notification sent when a service has been deleted from the service list.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.service | object | mandatory | Service information |
params.service.fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
params.service.shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
params.service.dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params.service.servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
params.service.lcn | integer | mandatory | Logical channel number |
params.service.scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
params.service.hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
params.service.hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
params.service.selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
params.service.runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "servicedeleted",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.servicedeleted",
"params": {
"eventtype": "ServiceDeleted",
"service": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.servicedeleted
.
videochanged notification
(Version 2) Notification sent when the video PID or codec has changed.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.service | object | mandatory | Service information |
params.service.fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
params.service.shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
params.service.dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params.service.servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
params.service.lcn | integer | mandatory | Logical channel number |
params.service.scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
params.service.hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
params.service.hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
params.service.selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
params.service.runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "videochanged",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.videochanged",
"params": {
"eventtype": "VideoChanged",
"service": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.videochanged
.
audiochanged notification
(Version 2) Notification sent when the audio PID or codec has changed.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.service | object | mandatory | Service information |
params.service.fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
params.service.shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
params.service.dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params.service.servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
params.service.lcn | integer | mandatory | Logical channel number |
params.service.scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
params.service.hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
params.service.hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
params.service.selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
params.service.runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "audiochanged",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.audiochanged",
"params": {
"eventtype": "AudioChanged",
"service": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.audiochanged
.
subtitleschanged notification
(Version 2) Notification sent when the subtitles have changed.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.service | object | mandatory | Service information |
params.service.fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
params.service.shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
params.service.dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params.service.servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
params.service.lcn | integer | mandatory | Logical channel number |
params.service.scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
params.service.hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
params.service.hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
params.service.selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
params.service.runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "subtitleschanged",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.subtitleschanged",
"params": {
"eventtype": "SubtitlesChanged",
"service": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.subtitleschanged
.
eventchanged notification
(Version 2) Notification sent when the EIT 'now' event is received when starting to play a service and when the 'now' event changes.
Notification Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.eventtype | string | mandatory | Event type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus, audiochanged, eventchanged, serviceadded, servicedeleted, serviceupdated, subtitleschanged, videochanged) |
params.service | object | mandatory | Service information |
params.service.fullname | string | mandatory | (Version 2) Full service name as given by the service descriptor in the SDT |
params.service.shortname | string | mandatory | Short service name as given by the service descriptor in the SDT |
params.service.dvburi | string | mandatory | DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal |
params.service.servicetype | string | mandatory | (Version 2) Service type as given by the service descriptor in the SDT (must be one of the following: avc_hd_nvod, avc_hd_nvod_timeshift, avc_mosaic, avc_radio, avc_sd_nvod, avc_sd_nvod_timeshift, avc_sd_tv, data, hd_tv, mosaic, mpeg2_hd, nvod, nvod_timeshift, radio, teletext, tv, uhd_tv, unknown) |
params.service.lcn | integer | mandatory | Logical channel number |
params.service.scrambled | boolean | mandatory | (Version 2) True if the service is marked as scrambled in the SDT |
params.service.hascadescriptor | boolean | mandatory | (Version 2) True if there is at least one CA descriptor in the service's PMT |
params.service.hidden | boolean | mandatory | (Version 2) True if the service should be hidden |
params.service.selectable | boolean | mandatory | (Version 2) True if the service should be user selectable |
params.service.runningstatus | string | mandatory | (Version 2) The running status as given by the service descriptor in the SDT (must be one of the following: notrunning, offair, pausing, running, startssoon, undefined) |
params.event | object | mandatory | EIT event information |
params.event.name | string | mandatory | Name of the DVB event as defined in the short event descriptor |
params.event.starttime | integer | mandatory | UTC start time of the event in seconds |
params.event.duration | integer | mandatory | Duration of the event in seconds |
params.event.eventid | integer | mandatory | ID of the event from the event information table |
params.event.shortdescription | string | mandatory | Event description from the EIT short event descriptor |
params.event.hassubtitles | boolean | mandatory | (Version 2) True if subtitles are available |
params.event.hasaudiodescription | boolean | mandatory | (Version 2) True if audio description is available |
params.event.parentalrating | integer | mandatory | (Version 2) Parental rating for the event, will be 0 if undefined |
params.event.contentdata | array | mandatory | (Version 2) The first 2 4-bit values from the content descriptor as separate bytes |
params.event.contentdata[#] | integer | mandatory | ... |
params.event.hasextendedinfo | boolean | mandatory | (Version 2) True if there's extended event information available |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DTV.1.register",
"params": {
"event": "eventchanged",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.eventchanged",
"params": {
"eventtype": "EventChanged",
"service": {
"fullname": "Channel 4",
"shortname": "C4",
"dvburi": "2.2041.9212",
"servicetype": "tv",
"lcn": 1001,
"scrambled": false,
"hascadescriptor": false,
"hidden": false,
"selectable": false,
"runningstatus": "running"
},
"event": {
"name": "Channel 4 News",
"starttime": 1587562065,
"duration": 1800,
"eventid": 3012,
"shortdescription": "The current national and world news",
"hassubtitles": false,
"hasaudiodescription": false,
"parentalrating": 12,
"contentdata": [
0
],
"hasextendedinfo": false
}
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.eventchanged
.