EP1125432A1 - Application programming interface for enabling a digital television receiver to access system information in an abstract format - Google Patents

Application programming interface for enabling a digital television receiver to access system information in an abstract format

Info

Publication number
EP1125432A1
EP1125432A1 EP99971609A EP99971609A EP1125432A1 EP 1125432 A1 EP1125432 A1 EP 1125432A1 EP 99971609 A EP99971609 A EP 99971609A EP 99971609 A EP99971609 A EP 99971609A EP 1125432 A1 EP1125432 A1 EP 1125432A1
Authority
EP
European Patent Office
Prior art keywords
terminal
api
transport stream
information
atsc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP99971609A
Other languages
German (de)
English (en)
French (fr)
Inventor
Petr Peterka
Todd Kassman
Geetha Mangalore
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arris Technology Inc
Original Assignee
Arris Technology Inc
General Instrument Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arris Technology Inc, General Instrument Corp filed Critical Arris Technology Inc
Publication of EP1125432A1 publication Critical patent/EP1125432A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/20Adaptations for transmission via a GHz frequency band, e.g. via satellite
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]

Definitions

  • CNN Cable News Network
  • DAVIC Digital Audio-Video Council
  • DCII GI Digicipher II (tm)
  • DIT Data Information Table
  • DTV Digital Television
  • ETT Extended Text Table (ATSC)
  • GIC General Instrument Corporation
  • GPS Global Positioning Satellite ID - Identifier
  • IP Internet Protocol
  • the present invention provides an API for accessing Program and System Information that describes the layout and content of an MPEG-2 TS .
  • This information also known as service information, is generally called System Information (SI) .
  • SI System Information
  • the ATSC standard is described in "Program and System Information Protocol for Terrestrial Broadcast and Cable,” Doc. A/65, 23 Dec 1997, available from the ATSC.
  • the DVB standard is described in “Digital Video Broadcasting (DVB) ; Specification for Service Information (SI) in DVB systems," EN 300 468 vl .3.1 (1998-02) , available from the European Broadcasting Union or the European Telecommunications Standards Institute .
  • a set-top terminal also referred to as an Integrated Receiver-Decoder (IRD) or a subscriber terminal, is a device that receives and decodes television signals for presentation by a television.
  • the signals can be delivered over a satellite, through a cable plant, or by means of terrestrial broadcast, for example.
  • VOD video on demand
  • voice mail voice mail
  • audio mail e.g., audio mail
  • telephony services stock ticker
  • weather data e.g., weather data
  • travel information e.g., travel information
  • games gambling, banking, shopping, voting, and others.
  • applications may also enable Internet connectivity and possibly Internet-based telephony.
  • the set top functionality is enabled through specialized hardware and software.
  • the applications may be downloaded by terminals via a network, loaded locally (e.g., via a smart card), or installed at the time of manufacture, for example.
  • the subscriber terminal that receives the SI must known which format is being used, and provide corresponding processing that is specific to that protocol. This is problematic since it forces the development of special code (software) at the terminal for accessing the SI. Thus, the cost, complexity, and computational requirements of the terminals are increased, and the development of software for the terminal is impaired.
  • the system should abstract common elements of the SI from the different formats to provide "abstract SI.”
  • the "abstract SI” should provide access to SI that is useful to an application at such a level of abstraction that the application does not have to be aware of what SI standard format is used to deliver the information to the receiver.
  • the system should avoid the need for the application to have special code (software) when it is intended to run in different environments, such as DVB, SCTE and ATSC-based systems.
  • the system should be suitable for use with SI that is provided using different formats, including MPEG Program Specific Information (PSI) , Digital Video Broadcasting Service Information (DVB SI) , Advanced Television Systems Committee Program and System Information Protocol (ATSC PSIP) , Cable SI such as DVS, and private SI, such as those in the DCII system.
  • PSI MPEG Program Specific Information
  • DVD SI Digital Video Broadcasting Service Information
  • ATSC PSIP Advanced Television Systems Committee Program and System Information Protocol
  • Cable SI such as DVS
  • private SI such as those in the DCII system.
  • the system should allow different applications to retrieve only the specific SI they require.
  • a descriptor refers to a mechanism for extending table data.
  • the various digital video standards allows the use of various types of tables of data for carrying SI.
  • a table may designate locations in a TS (e.g., PID, frequency) at which a particular channel or program is carried.
  • TS e.g., PID, frequency
  • descriptors have been developed as an extension mechanism.
  • a descriptor can be appended in an outer loop or inner loop of the table.
  • the descriptor is appended at the end of the table and provides additional table entries each time the entire table is read.
  • the descriptor is appended at the end of a portion of the table and provides additional table entries each time that of the table is read.
  • a descriptor may comprise a tag followed by a field or string of information, for instance.
  • Descriptors are only included as needed, and do not interfere with receivers that have not been updated to recognize them.
  • the system should make use of URL syntax concepts that are currently being defined for DTV.
  • the system should be implementable in an API at a subscriber terminal in a television network.
  • the API should be compatible with Java(tm), ActiveX (tm) or an equivalent type of component-based object-oriented technology.
  • the system should optionally provide asynchronous delivery of results, separation of MPEG-2 specific data from a TS, and incremental retrieval of SI data.
  • the system should be compatible with a URL locator syntax. Note that a URL definition for DTV is still being established.
  • the current API definition supports the DAVIC DVB URL and the GlC-proposed DTV and ATSC URLs.
  • the present invention provides a system having the above and other advantages .
  • the present invention provides an API that allows applications that are running on a digital television terminal to recover SI from a digital TS without regard to the specific format type.
  • the API abstracts the relevant portions of the SI to provide it in a format that is usable by different applications at the terminal .
  • Descriptor sub-package described below allows an application to retrieve a specific DVB or ATSC or private (e.g., DCII) descriptor if it has a special need to do so.
  • a television set-top terminal in accordance with the invention includes a computer readable medium
  • API Application Programming Interface
  • the API is adapted to abstract SI in a digital television transport stream that is received by the terminal in any one of a plurality of different formats.
  • the API provides the abstracted SI in a generic format that is suitable for use by an application at the terminal regardless of the specific format in which the SI is provided.
  • the different SI formats may include different data table formats .
  • the API may provide a number of functions at the terminal that are responsive to the abstracted SI, such as a navigation function that allows the terminal to navigate among television channels in the transport stream, a program guide function that implements an electronic program guide for the television channels, a selection function that selects specific television channels, and a descriptor retrieval function for recovering descriptors of the SI.
  • a navigation function that allows the terminal to navigate among television channels in the transport stream
  • a program guide function that implements an electronic program guide for the television channels
  • a selection function that selects specific television channels
  • descriptor retrieval function for recovering descriptors of the SI.
  • the API provides a utility function containing supporting objects, including events and exceptions, for supporting the delivery of the SI to the application synchronously, a data function for implementing a guide to data services in the transport stream in accordance with the abstracted SI, and a pipeline function for providing information regarding a physical delivery mechanism (e.g., satellite or transponder identifier) of the transport stream.
  • the pipeline function uses the appropriate SI tables to provide information about the delivery network (MPEG-2 Transport Stream, etc.).
  • the API provides these functions by exposing the appropriate SI data to the application.
  • An application such as an EPG can use these APIs to do its job, e.g. an EPG uses the Navigation package (or function) to learn about channels, and it uses the Guide package (function) to learn about scheduled programs on the selected channels.
  • the APIs or packages discussed herein are used (called) by specific applications .
  • the different available SI formats can include: Motion Picture Experts Group (MPEG) Program Specific Information (PSI) , Digital Video Broadcasting (DVB) System Information (SI) , Advanced Television Systems Committee (ATSC) Program and System Information Protocol (PSIP) , Cable SI Digital Video Standard 234 of the Society of Cable and Television Engineers, and private SI.
  • MPEG Motion Picture Experts Group
  • PSI Program Specific Information
  • DVD Digital Video Broadcasting
  • SI System Information
  • ATSC Advanced Television Systems Committee
  • PSIP Program and System Information Protocol
  • Cable SI Digital Video Standard 234 of the Society of Cable and Television Engineers and private SI.
  • the terminal may include a memory for storing the SI as the transport stream is received at the terminal, where the API provides a retrieve function call for enabling a calling application to retrieve the SI such that SI that is available in the memory is returned essentially immediately as a direct return value. If the service information is not available in the memory, the retrieve function call returns an exception signaling to the calling application that the SI is to be delivered to the calling application asynchronously.
  • the API may also provides a utility function containing supporting objects, including events and exceptions, for supporting the asynchronous delivery of the SI to the calling application.
  • the API may abstract the SI to provide it in a generic format that is suitable for use by an application at the terminal. This may be achieved by providing a base package having information that is generic to the available transport stream formats.
  • the API is adapted for use with a separate package having information that is specific to the format of the received transport stream.
  • the API provides the base set of APIs, which is extensible. For instance, ATSC is adding new packages to provide PSIP specific info, and DVB may do the same. Such packages are not shown here.
  • the API of the present invention is extensible so that format-specific extensions can be easily made by subclassing or extending the Abstract SI API classes and interfaces .
  • the API provides incremental retrieval of the service information by allowing a calling application at the terminal to obtain a subset of the SI that is available at the terminal, perform an analysis of the obtained SI, and retrieve additional SI if required based on the analysis.
  • the additional SI may be retrieved from the subset of the SI that is available at the terminal in a memory of the terminal, or from the transport stream.
  • the SI data may be stored at the terminal using a variety of implementations. For example, it can be stored before and/or after abstracting, after optimizing and compression, and so forth.
  • the API enables a calling application at the terminal to recover a subset of the SI in the transport stream while rejecting other SI in the transport stream that is not required by the calling application.
  • the API may also provide a filtering function that is responsive to the abstracted SI to allow the application to specify at least one service in the transport stream in which the application is interested.
  • the filtering can be based on whether the services are associated with: a particular transport stream (when services from multiple transport streams are available - a receiver may have multiple tuners, or SI data may be stored in the receiver's memory, in a SI database, that is collected from multiple transport streams over time), a network, a bouquet, a satellite, a satellite transponder, a service name, a service/channel number, a favorite channel, and a theme .
  • the API may be implemented using a plurality of packages for abstracting the SI, in which case it is efficient for the different applications at the terminal to include only specific ones of the packages according to specific portions of the abstracted SI that each application requires. A corresponding method is also presented.
  • FIG. 1 shows package relationships and dependencies of an API in accordance with the present invention.
  • FIG. 2 illustrates a navigation package class/interface diagram in accordance with the present invention.
  • FIG. 3 illustrates a program guide package class/interface diagram in accordance with the present invention.
  • FIG. 4 illustrates a selection package class/interface diagram in accordance with the present invention.
  • FIG. 5 illustrates a descriptor package class/interface diagram in accordance with the present invention.
  • FIG. 6 illustrates a pipeline package class/interface diagram in accordance with the present invention.
  • FIG. 7 illustrates a data package class/interface diagram in accordance with the present invention.
  • FIG. 8 illustrates a utility package class/interface diagram in accordance with the present invention. DETAILED DESCRIPTION OF THE INVENTION
  • An API allows applications that are running on a digital television terminal to recover SI from a digital TS without regard to the specific format type.
  • the API abstracts the relevant portions of the SI to provide it in a format that is usable by different applications at the terminal.
  • the API is preferably independent of an operating system and hardware of the terminal .
  • the figures were generated automatically from Rational Rose(tm) CASE tool, developed by Rational Software Corporation, USA.
  • the figures use the Rational Rose (tm) depiction of the UML, which is a language for specifying, constructing, visualizing, and documenting the artifacts of a software- intensive system.
  • a class diagram represents the static structure of a system, and shows a pattern of behaviors that the system exhibits. This is accomplished by showing the existence of classes and their relationships.
  • Each class is represented by a box with three sections. The top section lists the class name. The middle section denotes a list of attributes, and the bottom section denotes a list of operations.
  • a solid or dashed line between classes denotes an association or dependency.
  • a white diamond tip denotes aggregation by reference, while a black diamond tip denotes aggregation by value.
  • a triangular arrowhead denotes a restricted navigation, e.g., inheritance of operation but not of structure.
  • interfaces and classes begin with an uppercase letter, while methods begin with a lowercase letter.
  • a class is a template that defines a data structure, method and function calls for an object.
  • An interface defines a set of methods/function calls that can be manipulated by a class.
  • the class provides the code for implementing an interface.
  • Model Description The entire SI database model is based on the concept of "views". There are different ways to look at the SI database, and different applications may have different needs. The specified views allow applications to be concerned only with a subset of the SI database based on the application's needs. The concept of views is represented by Java packages .
  • FIG. 1 is a high-level figure that shows package relationships and dependencies of an API in accordance with the present invention.
  • the Navigation package 110 contains the main set of classes and interfaces that are used to navigate the existing television channels (DVB Services or ATSC Virtual Channels) .
  • the Selection package 130 adds features which allow a TvChannel to be used for tuning and selection of specific services (MPEG programs) .
  • the Guide package 120 provides information useful for an EPG, including program schedules, individual program events and program ratings.
  • the Descriptor package 140 allows a retrieval of individual MPEG descriptors associated with the MPEG sections that deliver the SI.
  • the Pipeline package 170 isolates some of the specific delivery media information.
  • the classes provided in this package currently represent the MPEG-2 delivery mechanism.
  • the Data package 160 is similar to the Guide package 120 except it provides information about data-related events (services), e.g., any software application that is sent along with the audio/video stream, such as a stock ticker, news ticker, sports statistics, interactive commercial, etc.), not audio/video events.
  • the Util (Utility) package 150 contains objects of a supporting nature, such as events, exceptions, etc.
  • This model provides both a high-level abstraction of the SI that describe the layout of the content delivered over the multiplex (meta-data) , as well as detailed information specific to a particular SI format. This is done via access to MPEG table descriptors. Since descriptors are used as way to extend the SI for additional and future functionality, it is a significant advantage of the invention that the API provides a generic access to the descriptors without changing the implementation of the API with every new or changed descriptor.
  • asynchronous delivery of results is provided. Since there are DTV receivers with varying capabilities, it is expected that not every receiver will cache all the SI data in the memory. It will do so for the necessary subset of the most useful information, but will have to parse the actual TS when it needs to retrieve data not stored in memory. However, access to the TS may take a significant amount of time. Therefore the API provides an asynchronous access to information that is not expected to be in memory at all times. In general, asynchronous (or non-blocking) calls add complexity not only to the implementation of the API but to the application using the API as well.
  • this API provides a single method which can be completed synchronously, if the information is available locally (in memory) , or asynchronously, if the data have to be retrieved from the TS .
  • All API calls starting with "retrieve” either return the requested object or throw an exception indicating that the data will be delivered later via an asynchronous event.
  • the caller can register itself as an listener to this event. Or, by not registering, the caller can indicate that it is interested in synchronous data delivery only.
  • the exception includes enough information to cancel the request and to associate it with the actual event delivering the data.
  • the SI usually contains system time related information in the form of the PSIP STT message or DVB TDT and TOT messages. At this time it is assumed that the local DTV receiver time will be synchronized with the system time of the channel currently tuned to and the value can be obtained using the Java. util .Date class. Note that this is acceptable if all transport multiplexes use a reliable and synchronized data source (such as GPS) . If a certain multiplex provides erroneous time information, it is up to the receiver implementation to resolve the situation.
  • FIG. 2 illustrates a navigation package class/interface diagram in accordance with the present invention.
  • the Navigation package 110 has two main functions, namely:
  • TvChannels which represent DVB services and ATSC virtual channels
  • the package includes the following classes and interfaces: CAIdentification 205, DeliverySystemType 807, SystemlnformationType 810, ChannelCollection 220, TvChannel 225, SlUpdate 830, ChannelConstraint 235, SIManager 240, TvChannelDetails 245, and ChannelIdentification 250.
  • the main navigation function is represented by the following classes and interfaces.
  • the SIManager 240 is the primary access point to the underlying SI database. It can generate a collection of TvChannels 225 called ChannelCollection 220 based on the selection criteria represented by the ChannelConstraint 235 object.
  • the selection criterion may be a network ID, TS ID, bouquet ID, user favorite channels, URL, etc. The collection can then be used to sort either by channel numbers or by channel names and navigate through the TvChannels 225 which represent either a DVB Service or an ATSC Virtual Channel .
  • the TvChannel 225 itself contains only the minimal information (such as Locator, Channel name and number) needed to navigate. Additional information about the channel is contained in the TvChannelDetails object 245.
  • the TvChannelDetails also provides some CA- related information via the CAIdentification interface 205, a delivery mechanism, and the time when the information about this channel was last updated.
  • the channel name and number is actually encapsulated in the Channelldentification object 250, which can be extended to accommodate different mechanisms for naming and numbering channels, such as the ATSC two-part channel number (e.g., using a major. minor notation - a string with a dot between the major and minor channel numbers - ex: 10.2) .
  • FIG. 3 illustrates a program guide package class/interface diagram in accordance with the present invention.
  • the package includes the following interfaces: SIManager 240, TvChannelDetails 245,
  • TvChannelWithSchedule 300 ContentRating advisory 310, Programschedule 320, RatingRegion 330, ProgramEvent 340, RatingDimension 350 and SlUpdate 830 (defined in FIG. 8) .
  • This package is intended to support electronic program guide type applications. It provides the application with two related sets of information: the program schedule on each channel, and rating information.
  • the ProgramSchedule object 320 can be used to retrieve the currently-playing program, the immediately following one, and then any other available program in the future for a specified time period.
  • Each ProgramEvent 340 can be queried for its name, start time and end time, description, rating, cost and other related information.
  • Rating related information is organized into rating regions, where each region may have a multiple rating dimensions such as MPAA rating, FCC TV rating, DVB age-based rating, etc. Each dimension contains multiple levels; each ProgramEvent is labeled with one of these levels for all supported rating regions.
  • FIG. 4 illustrates a selection/tuning package class/interface diagram in accordance with the present invention.
  • the package includes the following classes and interfaces: TvChannelDetails 245, ChannelComponent
  • MPEGChannelComponent 420 Locator 430, MPEGLocator 440 and ATSCLocator 450.
  • the tuning package extends the navigation functionality primarily by adding information about individual components of each TvChannel, such as video, possibly multiple audio components and optional data components.
  • the TvChannel object 225 can provide a Locator used by a TV Player which follows the JMF Player model or a separate service selection API.
  • the generic ChannelComponent 410 is extended in by the MPEGChannelComponent 420, which represents MPEG- specific information.
  • the basic Locator 430 concept is extended to support the MPEG-specific Locator (MPEGLocator 440) , which is then specialized for ATSC (ATSCLocator 450) .
  • MPEGLocator 440 MPEG-specific Locator
  • ATSC ATSC
  • DAVIC package includes a DVB- specific subclass as well .
  • FIG. 5 illustrates a descriptor package class/interface diagram in accordance with the present invention.
  • the package includes the following interfaces: TableType 510, DescriptorTag 520, Descriptor 530, MPEGTableDescriptors 540 and MPEGPipeline 660 (defined in FIG. 6) .
  • Descriptors are generally delivered in MPEG-2 tables in two locations: the outer loop which associates descriptors with the entire table, and the inner loop which associates descriptors with the specific entity described in the inner loop.
  • An example is a PSIP VCT, which has both outer- and inner- loop descriptors.
  • the outer loop descriptors are associated with all virtual channels defined by this VCT, while each inner loop contains descriptors for a specific virtual channel.
  • Applications executing on a set-top will use APIs to access the set-top functions including the SI.
  • the goal is to provide a format-independent API to retrieve SI (ATSC PSIP, DVB SI, etc.) to minimize the application's required knowledge of the details of these SI formats.
  • Abstraction is good in most cases, but certain applications need access to a specific descriptor which is not provided at the abstract API level. For example, this can be a descriptor which will be defined in the future. Therefore, it cannot be represented in the API directly. It can also be one of the descriptors that are not intended for an application; they are rather used by the receiver itself (e.g., AC3 descriptor, Linkage descriptor, etc.) The problem is to specify the specific descriptors an application is interested in. This applies to both determining the appropriate table, as well as the position of the descriptor loop.
  • the type of information (e.g., TS , service, event, etc.) for which descriptors are to be retrieved is primarily identified by a DTV URL. There are some rare exceptions; e.g., the DVB BAT is really not identified by any current URL formats.
  • the DTV URL is usually sufficient to point to a specific ⁇ table_type, descriptor loop> pair, especially for URLs pointing to an event or an elementary stream.
  • a table_type is specified to identify which type of a table to retrieve descriptors from.
  • Table_id is not used since some table types have different table_ids within the type (e.g., DVB NIT has 0x40 and 0x41).
  • the table_type scopes down the range of tables to search for descriptor especially at the higher level of URLs (the service and TS levels) .
  • an additional identification is needed. For instance, if a rating_type is specified, a Rating Region ID is needed to retrieve the proper subset of descriptors from the ATSC RRT . The same applies to navigation_type tables where a Bouquet ID is needed to retrieve descriptors from the DVB BAT outer descriptor loop.
  • an optional set of descriptor tags can be specified in the call to limit the search and the returned set of descriptors to the descriptors hinted in the list. If a set of descriptors is found in the given table identified by the ⁇ url , table_type, entity_info> tuple (e.g., set of values), only those matching the descriptor tags provided in the hint will be returned.
  • tuple e.g., set of values
  • separation of MPEG-2 specific data is provided.
  • Digital television content is primarily delivered using the MPEG-2 transport format. This is true for DVB as well as ATSC. With the convergence of television and personal computers, it is expected that digital video content may be delivered to the television receiver by other means, such as over the Internet in an IP format with some kind of a real-time protocol . This motivates a higher level of abstraction for the SI API that hides not only the difference between ATSC PSIP and DVB SI (both extensions of MPEG- 2), but also the difference between the different ways of delivering the content and the SI.
  • a base class which provides generic transport-neutral information, can be further extended with MPEG-2 specific information for MPEG-2 delivery networks. As new delivery mechanisms become popular, the base classes can be extended to provide detailed information about the specific protocol.
  • the API further abstracts the SI to provide it in a manner that is independent of the specific TS formats.
  • the API can therefore run on a terminal that receives a TS in any one of a number of different available formats.
  • FIG. 6 illustrates a pipeline package class/interface diagram in accordance with the present invention.
  • the package includes the following classes and interfaces: SIManager 240, Satellitelnformation 605, Networklnformation 610, Bouquetlnformation 630, SISpecificManager 640, Pipelinelnformation 650, TransportStreamlnfo 660, MPEGPipeline 670 and SystemlnformationType 810 (defined in FIG. 8) .
  • the Pipeline package provides additional information about the physical mechanism media delivering the content the SI data describes.
  • the physical delivery mechanism can include, e.g., satellite/transponder information.
  • SISpecificManager 640 provides access to the abstract Pipelinelnformation 650, which in this particular case is extended by the MPEGPipeline 670 representing an MPEG-2 multiplex.
  • the generic Pipelinelnformation 650 can be extended to support other types of delivery of content (e.g., Internet Protocols) .
  • FIG. 7 illustrates a data package class/interface diagram in accordance with the present invention.
  • the package includes the following interfaces : TvChannelDetails 245, ContentRating Advice 310, TvChannelWithData 710, DataSchedule 720, DataEvent 730 and SlUpdate 830 (defined in FIG. 8)
  • the Data view is similar to the Guide view, which represents EPG-like information.
  • the data schedule represents a lineup or guide of data events as opposed to audio/video events. Note that this package is modeled after the ATSC
  • FIG. 8 illustrates a utility package class/interface diagram in accordance with the present invention.
  • the package includes the following classes and interfaces: SIFactory 805, SIManager 240,
  • SystemlnformationType 810 SIChangeListener 815, EventObject 820, SlUpdate 830, SIChangeEventType 832, SIChangeEvent 834, TvChannelChangeEvent 835, DataChangeEvent 840, ProgramChangeEvent 845, SIInfoChangeEvent 850, Exception 860 (from the java.lang package), SIRetrievalEvent 865, SIRetrievalListener 870, SIDelayedDeliveryException 875, SIException 880, SIRetrievalFailEvent 882, SIRetrievalSuccessEvent 884, SIRequest 886, SINotAvailableException 890,
  • the utility package provides support in several areas, namely: 1. the event notification mechanism for both SI entity changes detected in the TS and events delivering asynchronous requests;
  • the SIChangeListener 815 and the SIChangeEvent 834 support the standard Java event model . The are three types of objects to listen to for changes:
  • the SIManager 240 which reports changes detected in the Network definition related tables represented by the TransportStreamlnfo 660, Networklnformation 610, BouquetInformation 630, etc. objects .
  • the ChannelCollection 220 which reports changes detected in any one of the TvChannels 225 contained by the collection.
  • receiver may choose to deliver only the high-level event and let the application update multiple objects if necessary.
  • the Utility package 150 also provides the mechanism to deliver data asynchronously. This functionality is provided by the SIRequest 886,
  • SIDelayedDeliveryException 875 SIRetrievalEvent 865 and SIRetrievalListener 870.
  • SIDelayedDeliveryException 875 signals to the caller that the data is available only asynchronously and provides the SIRequest object 886 which can be used to cancel the request and to associate this request with the SIRetrievalEvent 865, which eventually delivers the requested data or an indication of a failure.
  • the caller of the asynchronous method (indicated by the "retrieveXXX" name) may register as a listener to get the event. If it decides not to register as a listener, it is an indication to the API implementation that there is no need to parse the TS and retrieve the requested data.
  • the application has complete control over the delivery of data.
  • the present invention enables incremental retrieval of SI data. This allows an application to obtain a small set of SI data, make an intelligent decision, and retrieve more SI for possibly a selected SI object or a subset of SI objects.
  • Such a design provides flexibility, more control to the application, and more efficient retrieval of SI data.
  • an application does not have a way to instantiate an object that implements the specified interface.
  • an SIFactory class 805 is provided which has a method to obtain an instance of the SIManager.
  • This view at the SI is from the point of view of a navigation mechanism, such as a simple channel guide, channelUp and channelDown buttons, etc.
  • TvChannel represents an abstract view on what is referred to as an MPEG Program, DVB Service or an ATSC Virtual Channel. It represents the common information associated with it, such as channel name, channel number, description, etc.
  • Each TvChannel is uniquely identified by a tuple including system type, network id, TS ID, service number or channel number. This identification may be represented in the URL format.
  • This method retrieves additional information about the TvChannel. This information is based on the SI data (also called meta-data) . SI data can be considered to be information about other data (content) such as audio/video/data components of the transport stream. Since it is data about other data, it is sometimes called meta-data.
  • This method may return data synchronously or asynchronously .
  • getldentification () org . atsc . abstractsI .navigation .
  • Channelldentification This method is used to obtain the channel identification (e.g., channel name and number) .
  • ChannelCollection represents a collection of TVChannels 225 based on a specific grouping rule defined by the ChannelConstraint association class 235. Filtering used to create such a collection may be based on TS ID, Network ID, System Type (DVB, ATSC, etc.), Bouquet, content theme (e.g., sports), Channel name or a subset of it (e.g., CNN) or possibly a combination of these.
  • Filtering used to create such a collection may be based on TS ID, Network ID, System Type (DVB, ATSC, etc.), Bouquet, content theme (e.g., sports), Channel name or a subset of it (e.g., CNN) or possibly a combination of these.
  • This class also provides a mechanism for browsing those TVChannels contained by the particular collection instance .
  • nextChannel For example, if sorting by channel name is specified, the nextChannel method will return the next TvChannel object with a name alphabetically following the current TvChannel. It is always sorted in an ascending order.
  • nextChannel currentChannel : org.atsc.abstractSI .navigation. TvChannel
  • TvChannel TvChannel
  • TvChannel Returns the previous TvChannel based on the sorting criterion. Null is returned if the beginning of this collection is reached.
  • firstChannel () TvChannel Returns the first TvChannel in this collection based on the sorting criterion set for this collection.
  • lastChannel () TvChannel
  • addListener (listener : SIChangeListener) : void Called to register an SIChangeListener 815 for changes related to the Channels in this collection.
  • a TvChannelChangeEvent 835 will be delivered to the listener.
  • removeListener (listener : SIChangeListener) : void
  • This method returns a ChannelCollection object 220, which is a subset of this collection, based on the grouping conditions specified in the filter parameter. If the filter is null, a collection of all TvChannels 225 contained in this collection is returned.
  • This method is provided to generate an increasingly specialized collections of TvChannels based on multiple filtering (grouping) criteria.
  • findChannel locator : org.davic.net .Locator
  • org . atsc abstractSI .navigation .
  • This method returns the TvChannel corresponding to the specified locator if it is a member of this collection. Otherwise, it returns null. findChannel (channelID : org . atsc . abstractSI .navigation . Channelldentification) : org . atsc . abstractSI . avigation . TvChannel
  • This method returns the TvChannel corresponding to the specified channel identification if it is a member of this collection. Otherwise, it returns null.
  • SI Manager represents the central managing entity which has a knowledge of the entire network or a collection of networks, and can create a collection of TvChannels based on the ChannelConstraint filtering rules .
  • This method returns a ChannelCollection object based on the grouping conditions specified in the filter parameter. If the filter is null, a collection of all known TvChannels is generated.
  • This method can deliver results both synchronously or asynchronously. If requested data is available immediately, it is returned synchronously.
  • the SIDelayedDeliveryException 875 is thrown and the results are delivered to the registered listener via an event .
  • Parameter filter A rule constraining the requested channel collection.
  • Parameter listener A listener which receives the delivery event when data are retrieved asynchronously. If an application does not provide a listener (null) , no asynchronous retrieval is attempted. The listener is registered for this one call only. setPreferredLanguage (language : int) : void
  • This method sets the language used to return any textual information from the SI related classes and interfaces (e.g., TvChannel name, etc.) if provided as a multilingual string in multiple languages. If the specified language is not available, the system-level preferred language is used. If that language is not available either, the first available language will be used. This method is used to temporarily override the system-level preferred language within the abstractSI package . getPreferredLanguage ( ) : int
  • This method returns a list of available Rating
  • Region IDs . retrieveRatingRegion regionID : int, listener : org. atsc. abstractSI.util .SIRetrievalListener
  • This method is used to obtain a RatingRegion object of the specified ratingRegionID .
  • This method may deliver data synchronously as well as asynchronously .
  • This association class represents a set of rules or filtering criteria used to generate a particular ChannelCollection 220. Filtering used to create such a collection may be based on TS ID, Network ID, System Type (DVB, ATSC, etc.), Bouquet, content theme (e.g., sports), Channel name or a subset of it (e.g., CNN), etc .
  • ChannelConstraint (filter : int, value : Java. lang. Object) :
  • This constructor specifies what the grouping criteria should be.
  • Parameter filter - Filter represents an enumerated value of a specific filter type.
  • Parameter value - Sets the filter value based on the filter type. getFilterType 0 : int
  • CAIdentification 205 The CAIdentification interface provides a mechanism to associate CA-related information with any Si-related class, such as a TS or a TvChannel. It accesses information found in the CAT MPEG table. Public Operations: getCASystemlDs () : int[]
  • This interface provides a definition of constant values of supported filtering mechanisms, such as filtering by Network ID, TS ID, etc.
  • This interface provides access to TvChannel metadata.
  • Service type is one of the following values: digital TV, digital radio, analog TV, analog radio, data service, NVOD reference service, NVOD time shifted service. This list may be extended with new types of services in the future. retrieveComponents (listener : org.atsc.abstractSI .util . SIRetrievalListener) : ChannelComponent [] This method returns a list of elementary components which are part of this channel. getRunningStatus () : short
  • retrieveContent Advice (listener : org.atsc.abstractSI .util . SIRetrievalListener) : org . atsc . abstractSI . guide . ContentRating Advice []
  • TvChannel e.g., cable, satellite, etc.
  • This interface is used to provide a flexible and extensible way of identifying TvChannels by names, channel numbers, or other means.
  • channel number which is a system- specific value.
  • DCII uses a single number
  • DVB does not really support channel numbers or they are set-top or broadcaster specific
  • ATSC now has the two-part channel number.
  • the ATSC domain In the ATSC domain, it is in the major.minor notation (a string with a dot between the major and minor channel numbers) .
  • the service ID For DVB channels, it can be the service ID as the channel number.
  • This view of the SI is from the point of view of a program guide which shows not only the service availability but a list of future events offered on each of them.
  • This interface represents a collection of program events for a given TvChannel 225 ordered by time. It provides the current, next and future events.
  • the program event which contains the specified time will be returned.
  • the specified time falls between the program event's start time and the start time plus the event's duration.
  • retrieveFutureEvents startOfInterval : java.util .Date, endOfInterval : java.util .Date, listener : org. atsc .abstractSI .util . SIRetrievalListener
  • ProgramEvent [] Returns all known program events on this channel for the specified time interval .
  • retrieveEvent locator : org. davic .net .Locator, listener : org. atsc .abstractSI .util . SIRetrievalListener
  • This interface comprises a collection of elementary streams with a common time base, an associated start time, and an associated end time.
  • An event is equivalent to the common industry usage of "TV program.
  • the Event Information Table (EIT) contains information (titles, start times, etc.) for events on defined TvChannels.
  • An event is, in most cases, a typical TV program, however its definition may be extended to include particular data broadcasting sessions and other information segments, such as an infomercial, or to show that part of the event includes an interactive data application and the other part does not .
  • SlUpdate is an interface which is shared by all SI objects which represent SI tables and it provides information about the last time this object was updated.
  • This method returns the cost of an IPPV Program Event or null if this is not an IPPV event .
  • the e 0 short []
  • This method returns a list of themes associated with the program. It is represented as a number and is system-specific (e.g., DVB content nibble). Refer to the appropriate specification for details.
  • the Content Advisory is used to indicate, for a given event, ratings for any or all of the rating dimensions defined for each rating region. Ratings may be given for any or all of the defined regions.
  • An Event without content advisory indicates that the rating value for any rating dimension defined in any rating region is zero.
  • the absence of ratings for a specific dimension is completely equivalent to having a zero-valued rating for such a dimension.
  • the absence of ratings for a specific region implies the absence of ratings for all the dimensions in the region.
  • the rating_region associates ratings data given here with data defined in a RRT tagged with the corresponding rating region.
  • getRatingValue (ratedDintension : short) : short Returns a number representing the rating value of the dimension specified by the parameter for this rating region.
  • getRatingText (ratedDimension : short) : String Returns the rating description display string for the specified dimension. It shall be limited to 16 characters or less .
  • This interface defines all rating dimensions of a specific rating region.
  • PSIP Rating defines the TV parental guideline system referenced by any content advisory descriptor for a Service or Event. It is based on the RRT. Public Operations: getNumberOfDimensions () : short
  • the display string for the rating region name shall be limited to 32 characters or less.
  • One dimension in the U.S. rating region is used to describe the MPAA list.
  • the dimension name for such a case may be defined as "MPAA" .
  • a rating dimension may be a age-based DVB rating.
  • the dimension name display string shall be limited to 20 characters or less. isGraduatedScale () : boolean
  • the first string represents the abbreviated name for one particular rating value.
  • the abbreviated name for rating value 0 shall be set to a null string, i.e., "".
  • the abbreviated value display string shall be limited to 8 characters or less.
  • the second string represents the full name for one particular rating value.
  • the full name for rating value 0 shall be set to a null string, i.e., "".
  • the rating value display string shall be limited to 150 characters or less.
  • This interface extends the TvChannelDetails by adding access to the program schedule associated with this TvChannel. It is derived from TvChannelDetails 245.
  • This view at the SI is from the point of view of channel selection. It represents the information that is necessary to provide to other APIs, such as
  • NetworklnterfaceController JMF Player, A/V Decoder, etc., to select, tune and eventually decode a specific MPEG-2 service and its components.
  • MPEG Elementary Stream It provides information about individual components of the TvChannel 225. It may be used by a Player to select the appropriate components of the TS .
  • the Component Descriptor may be used if present.
  • a generic name e.g., video, first audio, etc.
  • ATSC PSIP Event ID is unique only within a single EIT table while the DVB Event ID is unique within the service.
  • a source is one specific source of video, text, data, or audio programming.
  • Source ID value zero is reserved. Source ID values in the range 0x0001 to OxOFFF shall be unique within the TS that carries the VCT, while values 0x1000 to OxFFFF shall be unique at the regional level .
  • getAssociationTag () int Returns the association tag (Association Tag Descriptor) of this elementary stream, or null if none is present.
  • TunableChannelControl is an interface which accepts a TvChannel object that can be tuned to and played by the JMF Player or its DTV derivative. Derived from JMF j avax. media. Control . Public Operations: getCurrentChannel () : TvChannel
  • This method is called to initiate a tuning, decoding and presentation of a TvChannel . play (newChannel : TvChannel, components : int[])
  • This method is called to initiate a tuning, decoding and presentation of a TvChannel .
  • the additional parameter specifies which components of the TvChannel to play. Components are identified by their tag number. play (newChannel : TvChannel, language : int)
  • This method is called to initiate a tuning, decoding and presentation of a TvChannel .
  • the additional parameter specifies which components of the TvChannel to play based on the language association.
  • This package describes a general API mechanism of retrieving descriptors from any type of an MPEG table: MPEG PSI, DVB SI, ATSC PSIP, or even private tables such as DCII.
  • the intention is to define an SI -format- independent mechanism of retrieving these descriptors to minimize the knowledge of DVB and ATSC differences and the need for special code in an application calling this API.
  • This interface provides a mechanism for retrieving MPEG Descriptors associated with any MPEG, DVB, ATSC or even a private table. It either returns a set of descriptors or a set of available descriptor tags . The calling application may also hint which descriptors it is interested in. Only a subset of those will be returned if they exist in the specified table.
  • Descriptors are primarily identified by a URL. This is in many cases not enough because a service, for instance, may be described in multiple tables, such as PMT and SDT. Therefore, table type is specified to identify which type of a table to retrieve descriptors from. In some rare cases an additional identification is needed. For instance, if a RRT type is specified, a Rating Region ID is needed to retrieve the proper subset of descriptors. The same applies to BAT type tables, where a Bouquet ID is needed to determine which descriptors to retrieve. Additionally, an optional set of descriptor tags can be specified in the call to limit the search and the returned set of descriptors.
  • DescriptorTag 520 and TableType 510 Derived from DescriptorTag 520 and TableType 510.
  • Parameter url - A URL-based specification of an entity (such as a TS, a service, etc.) for which to get the descriptors.
  • Parameter tablelD A TableType of the table from which to retrieve the specified descriptors.
  • Parameter someTags A list of tags for descriptors (identified by their tags) the application is interested in. All non-applicable tag values are ignored. If this list is empty or null, all descriptors will be returned.
  • Parameter listener A listener which receives the delivery event when data are retrieved asynchronously. If an application does not provide a listener (null) , no asynchronous retrieval is attempted. The listener is registered for this one call only.
  • Return Value A set (or subset) of Descriptor objects as indicated in someTags. See also Descriptor.
  • retrieveDescriptors (url : Locator, tableType : short, entityID : short, someTags : short [], listener : org.atsc.abstractSI .util . SIRetrievalListener) : org.atsc.abstractSI .descriptor .Descriptor []
  • This method retrieves a set of descriptors. This method retrieves all or a set of descriptors associated with the entity specified by the Locator (URL) delivered in the specified table in the order the descriptors are broadcast.
  • Locator URL
  • Parameter entitylD - An ID representing a specific entity described in the specified table.
  • the entity type depends on the table type. For example, if the table ID identifies an BAT, then the entity ID is a specific Bouquet ID.
  • Parameter listener see previous definition. Return Value - see previous definition.
  • retrieveDescriptorTags (url : Locator, tableType : short, listener : org.atsc.abstractSI .util .SIRetrievalListener) : short.] retrieves the tags of all descriptors associated with the entity specified by the Locator (URL) that are actually broadcast for the specified table type. The tags are returned in the same order as the descriptors are broadcast (i.e., in the transport stream) .
  • Parameter url see previous definition.
  • Parameter tablelD A Table ID of the table from which to retrieve the descriptor tags .
  • Parameter entitylD - An ID representing a specific entity described in the specified table.
  • the entity type depends on the table type. For example, if the table ID identifies a BAT, then the entity ID is a specific Bouquet ID.
  • This interface specifies the basic structure of an MPEG Descriptor. It consists of a Tag, Length and a array of bytes . Derived from SystemlnformationType 810 and DescriptorTag 520.
  • getTag () short Returns the descriptor tag.
  • getByteAt (index : int) byte
  • getLength ( ) short Returns the length of the descriptor content.
  • getContent 0 byte[]
  • This interface defines constants corresponding to the most common descriptor tags. See also Descriptor.
  • NVOD_REFERENCE : short 0x4B
  • TableType 510 This interface defines a set of constants corresponding to MPEG, ATSC and DVB table types, or private tables such as DCII.
  • NET_INFO : short 5 DVB NIT table and ATSC MGT table.
  • This package represents the pipeline (or network) view. It represents objects related to the transport delivery mechanism such as MPEG-2. It could also include information about non-MPEG delivery protocols such as IP.
  • Satellites in a satellite delivery network Satellites in a satellite delivery network.
  • getSatellitelD () int Returns the ID of this Satellite.
  • getSatelliteName () String
  • This method returns an array of transponder numbers available on this Satellite. getTransponderName ( tranponderNumber : int) : String
  • This method returns the name of this Bouquet .
  • This interface provides information about a TS . Derived from SystemlnformationType 810.
  • This method returns the Network ID of the Network where this TS originated from. This method returns the same ID as getNetworklD if this TS originated on the Network that carries it .
  • This method returns the name of this network.
  • the MPEG SI Manager represents MPEG-2 specific SI Derived from Pipelinelnformation 650 and
  • MPEGTableDescriptors 540 Public Operations: retrieveSatellitelnformation (tranportStreamID : int, listener : org. atsc .abstractSI .util . SIRetrievalListener) : Satellitelnformation []
  • This method returns an array of object representing information about the Satellites carrying the specified TransportStream. If no TS is specified, it returns an array of objects representing information about all known Satellites .
  • retrieveBouquet (bouquetID : int, listener : org. atsc. abstractSI.util .SIRetrievalListener) : org. atsc . abstractSI .pipeline .Bouquetlnformation
  • the method returns a specific TransportStreamlnfo object representing information about the specified TS .
  • retrieveTransportStreams (networkID : int, listener : org.atsc.abstractSI .util .SIRetrievalListener) : TransportStreamlnfo [] Returns an array of TransportStreamlnfo objects representing all known Transport streams for the specified network.
  • retrieveNetwork (networkID : int, listener : org.atsc.abstractSI .util . SIRetrievalListener) : Networklnformation
  • addListener listener : SIChangeListener
  • removeListener listener : SIChangeListener
  • void Called to deregister a SIChangeListener 815.
  • This SI manager has specific information about the content delivery media. Derived from SIManager 240.
  • This method returns a list of objects representing different content delivery media, such as MPEG-2 transport .
  • This abstract class is a placeholder for different content delivery media. It must be extended by an object that is specific to a particular transport mechanism, such as MPEG-2 TS .
  • This package represents a schedule of data events. Similar to audio/video programs, there may also be data events scheduled for a given TvChannel .
  • TvChannelWithData 710 This interface extends the TvChannelDetails by adding access to the data event schedule associated with this TvChannel. Derived from TvChannelDetails 245.
  • This method returns a schedule of data events.
  • This interface represents a collection of data events for a given TvChannel ordered by time.
  • RemoveListener (listener : org. atsc .abstractSI .util . SIChangeListener) : void Called to deregister a SIChangeListener. retrieveEvent (when : java.util .Date, listener : org. atsc .abstractSI .util . SIRetrievalListener) : org.atsc .abstractSI .data .DataEvent
  • the data event which contains the specified time will be returned.
  • the specified time falls between the data event's start time and the start time plus the event's duration.
  • retrieveEvents startOfInterval : java.util .Date, endOfInterval : java.util .Date, listener : org.atsc.abstractSI .util .SIRetrievalListener
  • org.atsc.abstractSI .data.DataEvent [] Returns all known data events on this channel for the specified time interval. retrieveEvent (locator : org. avic .net .Locator, listener : org. atsc .abstractSI .util . SIRetrievalListener) : DataEvent
  • This method retrieves a data event matching the locator.
  • the event must be part of this schedule.
  • This object represents a data event associated with a TvChannel 225 for a particular time interval.
  • the information is delivered in DIT tables.
  • DIT is an extension of PSIP. It is similar to the EITs, but it announces data events (not audio-visual events) and is defined in the ATSC T3/S13 Data Broadcast Specification.
  • retrieveDescription (listener : org. atsc .abstractSI .util . SIRetrievalListener) : j ava . lang . String
  • TvChannel this data event is associated with.
  • events and TvChannels are associated via the service ID; in ATSC, they are associated via the source ID.
  • This package defines classes and interfaces that provide support functions to the SI packages. This includes the notification mechanism (events and listeners) , the Factory Method for creating the SIManager object, and all Exceptions.
  • the Factory Method is a methodology and structure for solving a problem, as known from the field of object-oriented programming.
  • SIFactory 805 This class provides a mechanism to create objects that implement the SIManager interface 240. This class is modeled after the Factory Method design pattern. Public Operations: SIFactory () : Constructor getSIManager () : SIManager
  • the SIChangeListener interface shall be implemented by using application classes to listen to changes in SI objects. It provides a method to be called back by the listened to SI object to notify of an event . Public Operations:
  • This method gets called when an existing SI object is changed, a new SI object is detected or an existing SI object is no longer available.
  • SIChangeEvent objects 834 are sent to SIChangeListeners 815 to notify of a new event. Derived from EventObject 820. Public Operations: getType 0 : byte
  • This event delivers information about a particular TvChannel. Derived from SIChangeEvent 834. Public Operations: getChangedChannel () : Locator This method is called to determine which channel has changed.
  • This event delivers information about a particular ProgramEvent . Derived from SIChangeEvent 834.
  • This event delivers information about a particular high-level SI object usually obtained via the SI Manager. Derived from SIChangeEve t 834. Public Operations: getSIObjectType 0 : short
  • This method is called to determine which type of an SI object has changed. This may be
  • TransportStreamlnfo 660 Networklnformation 610, Bouquetlnformation 630, RatingRegion 330, etc. getSIObjectID () : int
  • This method returns the ID of the changed SI object whose type is identified by the getSIObjectType method. For example, if the SIObjectType is TransportStreamlnfo, then the SIObjectlD will be the TS ID.
  • This interface can be associated with any SI entity. It provides information about when the data was last updated.
  • the SI database may have new information which all listeners get notified about.
  • This exception is thrown when requested data is not available immediately (e.g., not cached) and signals an asynchronous delivery of the data. Derived from Exception 860.
  • getRequest () org. atsc .abstractSI .util .SIRequest
  • This method returns an object representing the asynchronous request. It can be used to cancel the request and to associate it with the event delivering the requested data.
  • This interface shall be implemented by application classes to receive events about completion of asynchronous SI requests.
  • the listener registers itself at the time of the potentially asynchronous call (as one of the parameters) .
  • the listener is registered for one call only and is automatically deregistered when the request is satisfied.
  • postRetrievalEvent (event : org.atsc.abstractSI .util .SIRetrievalEvent) : void
  • This method is called to deliver an asynchronous SI retrieval event to the listener.
  • This event delivers data requested asynchronously by any of the "retrieveXXX” calls. All the methods which start with the word “retrieve” fall into this category, e.g., retrieveDetails ( ) in block 225, retrievePresentEvent ( ) in block 320, etc.
  • getSequenceNumber ( ) int This method returns the sequence number assigned to the original asynchronous retrieval request to which this event is responding.
  • This object is used to facilitate asynchronous retrieval of SI data. This object can be used to cancel a pending request and to associate the request with a event delivering the requested data.
  • SIRetrievalSuccessEvent 884 This event signals that the requested data has been retrieved and delivered.
  • SIRetrievalSingleSuccessEvent 892 The event delivers a single object that was requested. Derived from SIRetrievalSuccessEvent 884. Public Operations: getResult 0 : java. lang. Object
  • This method is used to obtain the data delivered by this event .
  • the specific type (class) of the returned object can be anticipated from the context of the original call: it is the same object that would be retutned by the "retrieveXXX” method synchronously.
  • SIRetrievalMultipleSuccessEvent 894 The event delivers a -array of objects that were requested. Derived from SIRetrievalSuccessEvent 884. Public Operations: getResult 0 : java. lang. Object []
  • This method is used to obtain the data delivered by this event.
  • This event signals a failure to deliver the requested data. Possible reasons for a failure might be that the data is not present in the TS or resources were not available to obtain the data.
  • This interface provides access to specific SI databases (e.g., DVB SI database, ATSC PSIP database, etc. )
  • specific SI databases e.g., DVB SI database, ATSC PSIP database, etc.
  • DataChangeEvent 840 This event delivers information about a particular data event. Derived from SIChangeEvent 834. Public Operations: getChangedData 0 : org.davic.net .Locator
  • This interface provides information about the delivery system type (e.g., cable, satellite, etc.) of the particular object implementing this interface.
  • the present invention provides an API that allows applications at a digital television terminal to recover SI from a digital TS without regard to the specific format type.
  • the API abstracts the relevant portions of the SI to provide it in a format that is usable by the terminal .
  • the system is suitable for use, e.g., with SI formats including MPEG PSI, DVB SI, and ATSC PSIP, and private SI.
  • the invention is suitable for use with virtually any type of network, including cable or satellite television broadband communication networks, local area networks (LANs) , metropolitan area networks (MANs) , wide area networks (WANs), internets, intranets, and the Internet, or combinations thereof.
  • LANs local area networks
  • MANs metropolitan area networks
  • WANs wide area networks
  • internets intranets
  • intranets and the Internet, or combinations thereof.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)
EP99971609A 1998-10-30 1999-10-28 Application programming interface for enabling a digital television receiver to access system information in an abstract format Withdrawn EP1125432A1 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US10650898P 1998-10-30 1998-10-30
US106508P 1998-10-30
US10796598P 1998-11-12 1998-11-12
US107965P 1998-11-12
US11344498P 1998-12-23 1998-12-23
US113444P 1998-12-23
PCT/US1999/025322 WO2000027114A1 (en) 1998-10-30 1999-10-28 Application programming interface for enabling a digital television receiver to access system information in an abstract format

Publications (1)

Publication Number Publication Date
EP1125432A1 true EP1125432A1 (en) 2001-08-22

Family

ID=27380132

Family Applications (1)

Application Number Title Priority Date Filing Date
EP99971609A Withdrawn EP1125432A1 (en) 1998-10-30 1999-10-28 Application programming interface for enabling a digital television receiver to access system information in an abstract format

Country Status (9)

Country Link
EP (1) EP1125432A1 (zh)
JP (1) JP2002529970A (zh)
KR (1) KR20010082261A (zh)
CN (1) CN1332935A (zh)
AU (1) AU755310B2 (zh)
BR (1) BR9914790A (zh)
CA (1) CA2349009A1 (zh)
HK (1) HK1043898A1 (zh)
WO (1) WO2000027114A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001037546A2 (en) * 1999-11-19 2001-05-25 Scm Microsystems Gmbh Digital television methods and apparatus
AU2001251329B2 (en) * 2000-04-06 2006-09-21 Opentv, Inc. Generic data processing engine
GB2366109B (en) * 2000-06-08 2002-08-28 Alticast Corp System for authoring contents of digital television and method therefor
US20020059624A1 (en) * 2000-08-03 2002-05-16 Kazuhiro Machida Server based broadcast system, apparatus and method and recording medium and software program relating to this system
KR100358119B1 (ko) * 2001-02-09 2002-10-25 한국전자통신연구원 디지털 데이터 방송 서비스를 위한 데이터 스트리밍 장치및 그 방법
KR100409224B1 (ko) * 2001-02-23 2003-12-06 주식회사 에어코드 데이터 방송용 컨텐츠 제작 시스템 및 그 제작 방법
EP1244309A1 (en) * 2001-03-24 2002-09-25 Deutsche Thomson-Brandt Gmbh A method and microprocessor system for forming an output data stream comprising metadata
US7369520B2 (en) * 2001-10-02 2008-05-06 Nokia Corporation Internet protocol address to packet identifier mapping
KR100783400B1 (ko) * 2001-10-25 2007-12-10 엘지전자 주식회사 Dvb 규격에서 제조업체 정보 활용 방법
US7962011B2 (en) 2001-12-06 2011-06-14 Plourde Jr Harold J Controlling substantially constant buffer capacity for personal video recording with consistent user interface of available disk space
KR100406253B1 (ko) * 2001-12-24 2003-11-14 한국전자통신연구원 디지털 방송용 프로그램 가이드 정보 자동 변환 장치 및그 방법
WO2003088645A1 (en) * 2002-04-12 2003-10-23 Koninklijke Philips Electronics N.V. Downloading of programs into broadcast-receivers
US8181205B2 (en) 2002-09-24 2012-05-15 Russ Samuel H PVR channel and PVR IPG information
KR100482287B1 (ko) * 2002-10-26 2005-04-14 한국전자통신연구원 디지털 데이터 방송을 위한 동기화 스트림 데이터 삽입장치 및 그 방법
FR2848367A1 (fr) * 2002-12-04 2004-06-11 Koninkl Philips Electronics Nv Systeme et procede de decouverte de services pouvant etre fournis par au moins deux sources de services distinctes
JP4308546B2 (ja) 2003-02-20 2009-08-05 パナソニック株式会社 デジタル放送受信装置、デジタル放送受信方法及びデジタル放送受信プログラム
EP1654880A1 (en) 2003-08-07 2006-05-10 Koninklijke Philips Electronics N.V. Handling of program ratings for digital television
DE602004003959T2 (de) 2003-08-07 2008-04-10 Koninklijke Philips Electronics N.V. Standardisierte themabehandlung für das digitale fernsehen
EP1542472A1 (fr) * 2003-12-10 2005-06-15 Canal + Technologies Procédé et dispositif de récupération d'information dans des systèmes de TV numérique interactive
JP2008504785A (ja) 2004-06-30 2008-02-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 知的なチャンネル・ザッピングのための方法および装置
KR101285380B1 (ko) * 2006-09-07 2013-07-10 엘지전자 주식회사 디지털 방송 신호를 처리하는 장치 및 방법
CA2810041C (en) 2010-09-03 2015-12-08 Iparadigms, Llc Systems and methods for document analysis
US20140122121A1 (en) * 2012-10-31 2014-05-01 Oracle International Corporation Interoperable case series system
KR102046914B1 (ko) * 2013-02-13 2019-12-02 삼성전자주식회사 디지털 방송 수신기 및 채널 정보 갱신 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0027114A1 *

Also Published As

Publication number Publication date
BR9914790A (pt) 2001-10-02
CA2349009A1 (en) 2000-05-11
JP2002529970A (ja) 2002-09-10
AU755310B2 (en) 2002-12-12
AU1455100A (en) 2000-05-22
CN1332935A (zh) 2002-01-23
KR20010082261A (ko) 2001-08-29
HK1043898A1 (zh) 2002-09-27
WO2000027114A1 (en) 2000-05-11

Similar Documents

Publication Publication Date Title
AU755310B2 (en) Application programming interface for enabling a digital television receiver to access system information in an abstract format
US9596510B2 (en) Method for transmitting broadcast service, method for receiving broadcast service, and apparatus for receiving broadcast service
US8302128B2 (en) Non-real time services
US9667902B2 (en) Method for transmitting a broadcast service, method for receiving a broadcast service, and apparatus for receiving a broadcast service
Hartwig et al. Broadcasting and processing of program guides for digital TV
US20060074848A1 (en) Method for providing requested fields by get_Data operation in TV-Anytime metadata service
US7590111B1 (en) Transmission of a multiplex signal comprising a carousel having a plurality of modules
US7890978B2 (en) Generic data processing engine
US20050028202A1 (en) Apparatus and method for providing advertisements on digital TV
KR100918009B1 (ko) 대화식 어플리케이션들의 기록
EP2701396B1 (en) System and method for playing digital television program, and digital television reception terminal
KR20070043372A (ko) 홈단말에서 실시간 필터링된 방송 비디오 관리 시스템 및그 방법
AU2001251329A1 (en) Generic data processing engine
CN100362866C (zh) 一种生成数字电视电子节目指南的方法
AU2002321784B2 (en) Control of an interactive application in a data stream
CN108900899A (zh) 一种数字机顶盒基于运营商平台的快速搜索系统及方法
CN100493176C (zh) 一种实现电视节目搜索的数据表的建立方法及搜索方法
MXPA01004230A (en) Application programming interface for enabling a digital television receiver to access system information in an abstract format
Lin et al. An Interactive Media Platform Scheme for DTV Receiver Compliant with MHP
EP1662390B1 (en) Control of an interactive application at service handover
Standard ATSC Data Application Reference Model

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20010525

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

17Q First examination report despatched

Effective date: 20070227

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20070503

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230522