Managing AIT and DSM-CC Carousels

Managing AIT and DSM-CC Carousels

Introduction


Icareus Playout Carousel Server is a playout system for delivery of DSM-CC object carousels, DSM-CC data carousels and related tables (e.g. AIT) over DVB services. Object carousels can be used for delivering MHP, hbbtv, tru2way or mheg-5 applications.

Icareus Playout CS100 Carousel Server allows the building and supervision of high quality value-added television services by multiplexing data in real-time. The data can be received from multiple sources: DVB-ASI feeds and IP-networks. All carousels are generated in real-time, and both the carousel content and AIT application signaling can be updated dynamically.

The server features a carousel repository that can be updated and read from concurrently. CS100 Carousel Server can in this way act as a carousel ‘proxy server’, and output carousels at a faster bitrate than they are being updated.

For carousel description, Playout Carousel Server uses a common Object Carousel Interoperability Format (OBCIG). OBCIG XML defines an interoperability format to support transfer of carousel content between content providers and broadcasting environments.

All Playout servers are equipped with a PID Server allocating identifier values to various tables and elementary streams. Icareus Playout CS100 Carousel Server can automatically assign ID values to all stream content it generates, either using the internal PID server process or from a common PID server within the network.

PLAYOUT MANAGEMENT CONSOLE

The Playout server is managed through Playout Management Console (PMC).

The image below shows Playout Management Console with TV Applications and an example configuration for a carousel. 


ARCHITECTURES

PLAYOUT CS100 HEAD-END DEPLOYMENT


EXAMPLE HEAD-END ARCHITECTURE FOR ICAREUS PLAYOUT CS CAROUSEL SERVER 

EXAMPLE HEAD-END ARCHITECTURE WITH TV ANYWHERE


EXAMPLE HEAD-END ARCHITECTURE FOR HBBTV 

KEY TERMS

APPLICATIONS

There are several standards for TV Applications, which are based on the same underlying delivery technology called DSM-CC datacarousels. Quite the contradictory is the front-end and application development technologies, which differ on different standards.

Icareus Carousel support the following standards for TV Applications

  • HbbTV
  • MHP
  • MHEG-5
  • Ginga
  • Tru2Way

AIT

Application Information Table (AIT) is stream meta-data containing information about applications in a carousel.

DSM-CC CAROUSELS

Object carousels are the file system streams in which applications are sent to a receiver. When an application is running, the Playout Server streams the application directory, sending each file in the directory structure at time, starting from the first file again after last sent file.



NETWORKS AND OUTPUT

INTRODUCTION

The multinetwork feature in Icareus Playout opens the possibility to output several Networks (or Transport Streams over IP) from a single Playout server. Each Network may have it's own set of configuration parameters as well as datacasting services.

The basic idea is to add DVB Services to a Network and by selecting Carousels and AITs for these DVB Services manage the distribution of TV Applications on different Networks. To output a e.g. HbbTV Application the following steps need to be done:

  1. Create and configure a Network
  2. Create a DVB Service and add it the the Network
  3. Create a Application Carousel and add it to the DVB Service

This gives full flexibility to either have one DVB Service (and TV Applications) on one Network or to have separate DVB Service for each Network, thus deciding where and when each TV Application should be distributed.

Additionally it opens the possibility to regionalise the same Application for different parts of the actual Network by having e.g. regional news distributed over-the-air.

For service operators the value comes from the fact that a single server can be shared by many broadcasters, even in different multiplexes/transponders.

NETWORKS AND DVB SERVICES

Networks are managed in the Networks tree. Each Network has its own output on the server and the configuration can be accessed by right clicking the Network and select _UDP1 (2) output -_tab as shown on screenshots 1 and 2 on the right.


Screenshot 1.


Screenshot 2.


ATTACHING CAROUSELS TO NETWORKS

DVB Services hold the actual TV Applications (HbbTV, MHP, MHEG-5, etc.) and they should be added to a Network from the DVB Services tree. See screenshot 3 on the right.

Attaching Carousels with AIT and Applications to DVB Services is also done by right clicking the desired Carousel as shown on screenshot 4 right.


Screenshot 3.


Screenshot 4.


GENERAL DSM-CC OUTPUT SETTINGS


This dialogue allows you to edit DSM-CC object carousel (i.e. HbbTV or MHP carousel) and DSM-CC data carousel related settings.


Default caching transparency

Default caching transparency for object carousel modules, used when creating new carousels in PMC.


Default priority

Default priority for object carousel modules, used when creating new carouselsin PMC.


Compress modules by default

If this setting is enabled, object carousel modules will be compressed by default when creating new carousels in PMC.


DSI and DII repetition rate

Repetition rate of Download Server Initiate and Download Info Indication in data and object carousels, measured in milliseconds.


DIN event repetition times

How many times to repeat "Do it now" stream events in carousels.


DIN event repetition rate

Repetition interval for "Do it now" stream events in MHP carousels, measured in milliseconds.




MANAGING CAROUSELS AND APPLICATIONS

1. INTRODUCTION

On Icareus Playout, Applications are managed as part of DSM-CC Carousel. One carousel by default contains one Application, although it is possible to add Applications to a carousel by editing the AIT table of that carousel.

This approach has been adopted to give more freedom in the configuration of the AIT and Applications. It for example enables operators and broadcasters to send completely different kinds of AIT tables for each DVB Service or Network to meet the various technical requirements.

Object carousels are the file system streams in which applications are sent to a receiver. When an application is running, the Playout Server streams the application directory, sending each file in the directory structure at time, starting from the first file again after last sent file.

The broadcasting of the Carousels is managed per DVB Service and utilizing timers it may be fully automated and controlled also from 3rd party systems.

2. ADDING AN APPLICATION

Applications and Carousels are managed in Applications Carousel repository.

There are three ways to add an application:

  1. Clicking the "+" sign within the Carousel Repository on the right
  2. Right Clicking on the Applications Carousel Repository tree on the left
  3. Dragging your local carousel from the Local Carousel Repository

Carousels or Applications must be uploaded to the server before they can be used.
You must enter the name of the carousel, the bit rate at which it is streamed (bits per second) and three id values: PID (Packet ID), carousel id and component tag, see figure 4.2. Id values are assigned automatically by the server when the 
auto check box is checked.To create an AIT you must enter the minimum set of information that is needed to create a working AIT. This includes the name of the application, PID, initial class (for example application. TheXlet), application base directory and component tag. If the Autostart check box is checked, application will be started automatically, otherwise it will be present, but not autostarted. AIT PID is assigned automatically by the server if the auto check box is checked.
For further information about AIT, see 
AIT Chapter.


You can modify carousel's settings by right clicking the carousel in the carousel repository and selecting Properties. It enables you manually configure all possible properties of an application and carousel.

By right clicking a carousel you can also edit AIT, which enables you to change many additional properties of a carousel.

It is advisable to use just manually selected component values OR values with auto check box. If both styles are used with the same carousel, there can be some unique PID issues.






3. LOCAL CAROUSELS

A very common scenario is that one application is used frequently over the time.

It is thus handy to have a location where one can collect these frequently used carousels. This place, called carousel tree, is shown in the lower left corner of the window.

To add an application to the carousel tree, right click the tree and select New carousel. A dialogue appears that prompts you to point the root directory of the carousel. The other way of adding an application is to drag a directory from your file manager and drop it over the carousel tree.

You can remove carousels from the tree by right clicking the carousel and selecting Remove carousel. This does not remove the files from the file system, only from this favourite list.




You can update a carousel by updating all files in the carousel or by adding, removing and modifying single files and directories. To update all files, drag the carousel root folder from a file explorer to the carousel content tree. You will have to restart the carousel for the changes to take effect.

It is also possible to update files within the carousel via FTP or SFTP. You can use any FTP client to connect to the Playout server and in the FTP root folder you will find the carousel folder that contains all application carousels.


The Database id is used as the folder name. Database id can be found by selecting the application carousel repository in PMC.

To ensure the consistency of the carousel, the updates in the FTP will not have an effect unless the carousel is updated manually or by scheduling a periodic update using PMC.



 

4.1. ADDING, MODIFYING AND REMOVING FILES

To add a file, right click on a directory in the carousel content tree and select Add File. You will be prompted to select the new file.

To add a directory, right click on a directory in the carousel content tree and select Add Directory. You will be prompted for a name for the new directory.

To update the contents of a file, right click on a file in the carousel content tree and select Update File Content. You will be prompted for the new file. Note that the name of the original file will not be changed.

To remove a file or a directory, right click on it and select Remove File or Remove Directory. Directories are removed recursively.

4.2. UPDATING CACHED CHANGES

All modifications are cached in PMC until you apply them. This can be done by right clicking on the carousel content tree and selecting Save Changes. Files and directories with cached modifications are shown with a grey background.

4.3. SCHEDULING A PERIODICAL UPDATE

Sometimes it is necessary to update a carousel periodically. A ticker application, for example, might update its news content every 15 minutes. To automate this kind of periodical updating, PMC offers a scheduled update system for carousels.

To edit scheduled updates for a carousel, right click the carousel content tree and select Schedule Carousel Update.

In the upper part you can configure the period of updates, given in various time units. In the lower part you can select the files that are to be scheduled for updating. The list to the left contains all files in the carousel, the list to
the right the selected files that are going to be scheduled. To add files to the selection, select a file (or a whole directory) and click the button marked with an arrow pointing right. The files are added on the right. To remove files from the selected list, select them and click the button marked with an arrow pointing left.


For each of the selected files, the scheduled carousel update checks once per update period if the file has changed. Changes are detected using an md5sum of the file (Playout version 4.5.4.2 and later) or by checking the time the file was modified (older versions). When changes are detected, the changed files are put into the carousel data stream after the current carousel cycle has finished and the new cycle begins.



You can edit carousel collections by selecting a carousel in the repository and selecting Collections tab from the right side panel.
Collection editor allows user to define collections to describe a group of one or more files having similar attributes and repetition parameters. Collections have the following properties:

  • Compression: If on, files in the collection will be compressed.
  • Caching transparency: Transparency level that shall be used by the terminal if it caches objects contained in this collection. The possible values are Transparent, Semi-transparent and Static caching. For more information, see e.g. MHP specification [5] section B.5.2, "Transparency levels of caching".
  • Priority: Indicates the caching priority for the objects within this collection. A higher value indicates more importance for caching. Priority must be between 0 and 255, default is 128.

By default there is only one collection named Default.

To add a new collection, right click the module tree, select Add collection from the pop-up menu and enter a name for the collection. To move files from one collection to another, select the files you want to move, right click the files and select Move to collection from the pop-up menu.

To save the changes you have made, click the Save changes button.

It is possible to configure if carousel packets are not sent for http based applications. The following commands allow configuring this.

#su - postgres
#psql
#\c playout
#select * from config where name='send-carousel-for-http-apps';   // check current value
#update config set value='1' where name='send-carousel-for-http-apps';    // change the value: 1 means carousel packets are sent, 0 means carousel packets are not sent
#\q
#exit

All applications should be restarted to use new configuration value. Two options are available.

  1. Restart all services using menu: Server->Service Management->Restart All
  2. Restart every application separately: Right click application name in the DVB services node and select 'Restart' menu item

7. CAROUSEL TRANSPORT STREAM GENERATION

For each running object carousel on the Icareus Playout server, a DSM-CC input process is used to generate the carousel transport stream. The generated transport stream is sent to the Playout Multiplexer which sends it to the correct output.

The carousel transport stream includes a DSI (Download Server Initiate) and one or more DII (Download Indication Information) messages. The DII messages have info about what modules the carousel contains.

Each module can contain multiple messages, e.g. File Messages and Directory Messages that describe the files and directories that are part of the carousel. For large carousels, sometimes more than 100 modules are needed and in this case the carousel often contains more than one DII.

When the carousel is updated, the transaction id of the relevant DII is incremented. In addition the module version is incremented for the relevant file's module and for the module that contains the directory where the file is. This allows receivers to efficiently detect when there are changes in the carousel files.



BROADCASTING APPLICATIONS

1. INTRODUCTION

Carousels (or Streams) once attached to a Service, can be broadcasted, or streamed actually, either manually or using timers.

Streams are transport stream sources (DSM-CC carousels etc.) that have been attached to a DVB service. A stream is required in order to start a source and to add it to Playout server's internal transport stream multiplexer.

2. STREAMS TABLE

2.1. STARTING AND STOPPING STREAMS

When you select a service or a single stream, streams and their timers are shown on the right side of the PMC window under the Streams tab.

To start a stream manually, select it from the server tree and you will see the stream and its timers on the right. Right click on the stream and select Start from the menu. The stream will now run until it is stopped manually.


Note that manual starting and stopping may not work for a stream that has timers depending on how the timers have been scheduled.

Mode column in the stream table indicates if the stream has been started or not. On indicates that the stream is set to run at all times, Off indicates that the stream will only be started by a timer.

Status column indicates the actual running status of the stream. If the stream is running normally, it will show the text Running with a green background. If there was an error last time the stream was started, it will show the text Error with a red background.

Note, that if more than one stream uses the stream event with the same stream event PID, some undesired effects. One example could be, that if two streams under some service uses a stream event with same PID 3200, and both are started, this would result as two separate Stream Identifier Descriptors with PID 3200 in PMT table.

Best practice to avoid this, would be using unique PIDs for stream events, but if this is not possible, there is a workaround for this problem. This would be to stop one of the streams under the service, and start that again. If more streams using this same stream are located under other services, the same trick must be done in case of those services.

Please notice also, that (in this example) stopping a stream removes this description using the PID 3200 from PMT table for ALL services, that are running streams that are using streams events with the PID 3200. If this is not desired effect, the same trick must be done for all services involved.

2.2. CREATING TIMERS

A timer can be created by right clicking on a stream under the Streams tab and selecting Add Timer. You can set the start and stop times for the timer (see figure 5.2).


Note that if the stream has already been started manually, you should stop it before adding timers for it.



2.3. EDITING AND DELETING TIMERS

Timers can be edited by right clicking on the timer and selecting Edit timer from the menu.

A timer can be deleted by right clicking on the timer and selecting Delete timer from the menu.



AIT (APPLICATION INFORMATION TABLE)

1. AIT COMPONENTS

Each carousel can have an AIT that describes some basic parameters for applications in the carousel. AIT consists of three components:

  1. Fields
  2. Descriptors
  3. Loops

Fields are either string or integer values with a short name. Integer values are shown as hexadecimal numbers. A field is shown in the AIT editor as A descriptor is a structure that can have fields and loops in it.

For example, a descriptor application_identifier has organisation_id and application_id fields. A descriptor is shown as A loop contains a list of loop items. For example, an item in loop application_name_loop has an integer field named ISO_639_language_code and a string field named application_name.

2. ADDING AIT TO CAROUSELS



When a carousel is attached to a service, PMC asks the user whether he/she wishes to create an AIT for the carousel. AIT can also be created later by right clicking on a carousel and selecting Create AIT from the menu. In either case, a simple dialogue appears: 
This is the minimum set of information that is needed to create the AIT.

It includes the name of the application, AIT PID, initial class (for example application.TheXlet) for Java Applications, base directory for the application, component tag and an autostart option.


Now also MHP applications can be fetched from URL as an application location, like it has been with HbbTV.

Now it is also possible to use same AIT PID for HbbTV and MHP carousels under same service. If this feature is used, it is not possible to stop just one of them. This means, that if e.g. HbbTV carousel is wanted to be restarted, it must be done so that MHP carousel with the same AIT PID in same service is also stopped if it is running. In this case "restart" operation must not be used.

In case of MHP application, one must put some character to the Initial class -field, even if an URL is used. E.g.Space is good enough in this kind of case.

3. MULTIPLEXER INFO FOR CAROUSELS

After applications are atatched to sevice(s) and started, it is possible to see some useful data about them by opening "Multiplexer Info" dialog; Status -> Multiplexer Info.

Here is an example of this dialog for case where HbbTV and MHP applications share the same AIT PID and are running under same service: 



4. EDITING AIT

When adding an AIT for a carousel, the PMC asks only basic information about the application and fills the rest of the AIT with default values. Sometimes in advanced use it is necessary to edit the AIT by hand. This can be accomplished by right clicking carousel in the carousel repository and then selecting Edit AIT from the menu.

AIT tree can be navigated using UP and DOWN. Levels can be expanded and collapsed using RIGHT and LEFT. Menu can be opened by pressing INSERT and hidden by pressing ESC.

Editing Fields Each field in the AIT is shown as . A field can be edited several ways:

• Select the field from the tree and press ENTER.

• Double-click the field from the tree.

• Select the field from the table beside the tree.

Regardless the way choose, a dialogue appears that prompts you to give a new value for the field. Additional information, such as proper value ranges for the field, may also be shown. If the value you enter is not within that range, PMC prompts you to enter another value.

Adding Loop Items Sometimes it is necessary to add new items to a loop. For example, one could want to add a new parameter to the descriptor dvb_j_application_descriptor, thus wanting to add a new loop item in the loop dvb_j_parameters. To add an item into a loop, you can do any of the following:

• In the tree view right click the loop to which you want to add the item and select Add a new item.

• In the tree view move the cursor to the loop to which you want to add the item using arrow keys. Press INSERT and select Add a new item.




APPLICATION RECORDING DESCRIPTOR


Application recording descriptor
<!DOCTYPE data PUBLIC "" "si.dtd">
<data>
<descriptor name="Application recording descriptor">
    <field name="descriptor_tag" visible="false" value="6" type="ulong" bitcount="8"/>
    <length bitcount="8" target="total"/>
    <field name="scheduled_recording_flag " value="0" type="ulong" bitcount="1"/>
    <field name="trick_mode_aware_flag " value="0" type="ulong" bitcount="1"/>
    <field name="time_shift_flag " value="0" type="ulong" bitcount="1"/>
    <field name="dynamic_flag" value="0" type="ulong" bitcount="1"/>
    <field name="av_synced_flag" value="0" type="ulong" bitcount="1"/>
    <field name="initiating_replay_flag" value="0" type="ulong" bitcount="1"/>
    <field name="reserved" visible="false" value="0" type="ulong" bitcount="2"/>
</descriptor>
</data>



PMT (PROGRAM MAP TABLE)

Now it is also possible to edit a value of so called "magic-bit". This can be done by editing PMT descriptors of carousel. The Program Map Table Descriptors dialog can be opened from popup menu that is displayed when pressing right hand mouse button for carousel.

The dialog looks like this:



Now the "magic-bit" can be edited by adding an "Application signalling descriptor". That can be done by clicking the right hand mouse button for "PMT stream descriptots" and choosing "Add descriptor" from popup.

The "Select  Descriptor" dialog looks like this:




After pressing "OK" you should see this view:




Now you must add an application with popup menu. After that you should see this kind of settings:





The descriptor "test_application_flag" is actually the "magic-bit". The value for this can be set to zero or 1.

The value of this descriptor can be seen with folowing steps:

  • Open PMC's Multiplexer Info dialog (Status -> Multiplexer Info)
  • Double click the line "PMT for service <service that has the running application> e.g. "PMT for service 5"
  • See streams -> Stream <AIT PID of application> -> desciptors -> ApplicationSignallingDescriptor -> application_types -> ApplicationType -> reserved
  • The value of this should be the same that was set for "test_application_flag" in "Program Map Table Descriptors" dialog

The information PMT dialog for selected service looks like this:






    • Related Articles

    • Managing Applications

      Introduction Icareus Playout Carousel Server is a playout system for delivery of DSM-CC object carousels, DSM-CC data carousels and related tables (e.g. AIT) over DVB services. Object carousels can be used for delivering MHP, Hbbtv, tru2way or mheg-5 ...
    • Managing SSU

      UNT UPDATE NOTIFICATION TABLE SSU server can generate multiple UNT sub tables that each have a unique OUI (i.e. two sub tables can't use the same OUI value). Currently all UNT sub tables are sent on a single PID. To edit UNT PID, select UNT from ...
    • Managing Playout OS Services

      Introduction Icareus Playout runs several linux services for its features. Managing Playout OS Services Playout Services and Linux processes can be managed from both Playout Management Console and Linux console. In Linux console Icareus Playout is ...
    • Managing Subscribers

      Introduction Subscribers are the end users of Icareus Suite service. With OPTIONAL Subscriber module you can restrict and deepen to relationship with your video service viewers, required especially if: You want to charge the viewers for the content ...
    • Managing DVB Services

      Introduction DVB Services in Icareus Playout represent TV or radio channels that are broadcasted. Note, that service properties depend on the included features of the Playout server. The DVB Services tree includes services that have been configured ...