Java TV SI and low level SI Integration

This section describes the integration of the Java TV high level SI package into the Low Level SI database. In typical DTV systems a specific set of APIs is defined to encapsulate the low-level SI database, which is used in the specific standard. These define classes and interfaces to represent elements of the SI tables as available in the network. The Java TV SI APIs describe an abstract model to handle service information. If this API is used with a concrete SI database, a mapping of the classes and methods to the concrete fields of the SI database needs to be defined, which ensures that both SI access APIs work together.

Integration of Java TV SI and Low Level SI API

The following section defines the integration of protocol independent SI APIs and the Low Level SI API. Whereas the protocol-independent SI API as defined in JavaTV offers access to high level service information, the transport dependent APIs are used to get additional, protocol dependent information on the elements on the network. To achieve a close coupling between these two APIs, it is required that objects representing SI information entities, which are available in both API sets, are implementing the corresponding interfaces of both API sets.

The interfaces of both APIs shall be implemented according to the following table:

JavaTV SI interfaceprotocol-dependent interface
javax.tv.service.transport.NetworkSINetwork
javax.tv.service.transport.BouquetSIBouquet
javax.tv.service.transport.TransportStreamSITransportStreamNIT
javax.tv.service.guide.ProgramEventSIEvent
javax.tv.service.navigation.ServiceDetailsSIService

Java TV SI API Mapping into SI database

The following sections define the mapping between the Java TV SI APIs and the corresponding SI database tables in the network.

For all getter-methods, which return a name or descriptor corresponding to a multilingual name field of the underlying SI table, the following rule applies:
If the language of a multilingual name descriptor field in the SI table corresponds to the language returned by javax.tv.service.SIManager.getPreferredLanguage, the name from the descriptor field is returned. In any other case the returned name is an implementation dependent choice of the available values in the descriptors.

javax.tv.service.transport.Bouquet

This interface represents a SI Bouquet. Instances of Bouquet must also implement the CAIdentification interface.
A locator returned by the getLocator method is an implementation dependent javax.tv.locator.Locator object, where no standardized external form is required.

javax.tv.service.transport.Network

This interface represents a SI Network.
A locator returned by the getLocator method is an implementation dependent javax.tv.locator.Locator object, where no standardized external form is required.

javax.tv.service.transport.Transport

Instances of objects, which implement the Transport interface must also implement the BouquetCollection and NetworkCollection interfaces.

javax.tv.service.transport.TransportStream

For SI systems where no Transport Stream description is defined, an empty string is returned by the getDescription method.

javax.tv.service.guide.ProgramEvent

Objects are using this interface for SI Events and must also implement the CAIdentification interface. The return values for getStartTime, getDuration and getEndTime are taken or calculated from the corresponding time values of the event entry in the body of the EIT table or its equivalent SI table. The method ProgramEventDescription#getProgramEventDescription() should return a textual description for a given event whenever it is available. Characters codes 0x8a and 0xe08a are replaced by a Java newline (\n).

javax.tv.service.Service

The Service interface represents the available services on the network. Objects implementing the Service interface may also implement the ServiceNumber interface.

javax.tv.service.ServiceType

The mapping of service types to Java TV service types is defined in the following table:

Service_typeDescriptionJava TV service type
0x00 Reserved for future useUNKNOWN
0x01 Digital television serviceDIGITAL_TV
0x02 Digital audio serviceDIGITAL_RADIO
0x03 Teletext serviceDATA_BROADCAST
0x04 NVOD reference serviceNVOD_REFERENCE
0x05 NVOD time-shifted serviceNVOD_TIME_SHIFTED
0x06 Mosaic serviceDIGITAL_TV
0x07 – 0x09 Reserved for future useUNKNOWN
0x0A Advanced coding for digital radio serviceDIGITAL_RADIO
0x0B Advanced coding for mosaic serviceDIGITAL_TV
0x0C Data broadcasting serviceDATA_BROADCAST
0x0D Reserved for common interface (see EN 50221)UNKNOWN
0x0E RCS Map (see EN 301 790)UNKNOWN
0x0F RCS FLS (see EN 301 790)UNKNOWN
0x10 DVB MHPDATA_APPLICATION
0x11 Digital MPEG2 HD television serviceDIGITAL_TV
0x12 – 0x15 Reserved for future useUNKNOWN
0x16 Advanced coding for digital SD television serviceDIGITAL_TV
0x17 Advanced coding for digital NVOD SD time-shifted television serviceNVOD_TIME_SHIFTED
0x18 Advanced coding for digital NVOD SD reference television serviceNVOD_REFERENCE
0x19 Advanced coding for digital NVOD HD television serviceNVOD_TIME_SHIFTED
0x1A Advanced coding for digital NVOD HD time-shifted television serviceNVOD_TIME_SHIFTED
0x1B Advanced coding for digital NVOD HD reference television serviceNVOD_REFERENCE
0x1C – 0x7F Reserved for future useUNKNOWN
0x80 – 0xA0 Defined by the service provider
0xA1 Special video serviceDIGITAL_TV
0xA2 Special audio serviceDIGITAL_RADIO
0xA3 Special data serviceDATA_BROADCAST
0xA4 Engineering serviceUNKNOWN
0xA5 Promotional video serviceDIGITAL_TV
0xA6 Promotional audio serviceDIGITAL_RADIO
0xA7 Promotional data serviceDATA_BROADCAST
0xA8 Data service for anticipated storageDATA_BROADCAST
0xA9 Exclusive data service for storageDATA_BROADCAST
0xAA Bookmark service listDATA_BROADCAST
0xAB Simultaneous server type serviceUNKNOWN
0xAC Independent file serviceDATA_BROADCAST
0xAD – 0xBF Not defined (range defined by the standardization organization)UNKNOWN
0xC0 Data serviceDATA_BROADCAST
0xC1 – 0xFF Not definedUNKNOWN

javax.tv.service.navigation.ServiceDetails

This interface represents information representing the details of a service from the SDT and EDT table or their equivalent SI tables.
Instances of ServiceDetails must also implement the CAIdentification interface and shall not implement the ServiceNumber interface.
On SI systems, where no service description is available in the underlying SI tables, the method retrieveServiceDescription shall fail with SIRequestFailureType(DATA_UNAVAILABLE).

javax.tv.service.navigation.ServiceComponent

The ServiceComponent interface is mapped to the EIT and represents information contained in the Component descriptors, Multilingual component descriptors or Data broadcast descriptors.

javax.tv.service.SIElement

This interface is implemented by objects implementing the ServiceDetails, ServiceComponent, ProgramEvent, Network, Bouquet and TransportStream interfaces.

javax.tv.service.SIManager

The return values of getSupportedDimensions and getRatingDimension depend on the parental rating system of the specific SI schema.

Clarifications:

javax.tv.service.navigation.SIElementFilter

The SIElementFilter must be supported for the TransportStream and Network objects. If it is not available for other SIElement objects, the constructor may throw a FilterNotSupportedException. On systems, where no conditional access is used, the method getCASystemIDs should return an empty array and the method isFree() should return always TRUE.

javax.tv.service.navigation.CAIdentification

This interface is implemented by objects implementing the ServiceDetails, ProgramEvent or Bouquet interface.

javax.tv.service.navigation.ServiceProviderInformation

This interface is implemented by objects implementing the ServiceDetails interface.

javax.tv.service.guide.ContentRatingAdvisory

The ContentRatingAdvisory depends on the parental rating scheme of the concrete SI database.

javax.tv.service.RatingDimension

This interface is mapped on the parental rating descriptor as defined in the parental rating scheme of the SI network.

javax.tv.service.navigation.StreamType

The mapping of stream_content and component_type is defined in the following table. If a component does not have an associated Component descriptor, but a Data broadcast descriptor, the stream type DATA shall be used.

Stream_content component_typeJavaTV Stream type
0x01 0x00…0xff VIDEO
0x02 0x00…0xff AUDIO
0x05 0x00…0xff VIDEO
0x06 0x00…0xff AUDIO

Since:
JavaDTV1.0