DVB variants of MPEG-TS sections

DVB variants of MPEG-TS sections — Sections for the various DVB specifications

Synopsis

#include <gst/mpegts/mpegts.h>

enum                GstMpegTsSectionDVBTableID;

struct              GstMpegTsNIT;
struct              GstMpegTsNITStream;
const GstMpegTsNIT * gst_mpegts_section_get_nit         (GstMpegTsSection *section);

struct              GstMpegTsBAT;
struct              GstMpegTsBATStream;

struct              GstMpegTsSDT;
struct              GstMpegTsSDTService;
const GstMpegTsSDT * gst_mpegts_section_get_sdt         (GstMpegTsSection *section);

struct              GstMpegTsEIT;
struct              GstMpegTsEITEvent;
enum                GstMpegTsRunningStatus;
const GstMpegTsEIT * gst_mpegts_section_get_eit         (GstMpegTsSection *section);

GstDateTime *       gst_mpegts_section_get_tdt          (GstMpegTsSection *section);

struct              GstMpegTsTOT;
const GstMpegTsTOT * gst_mpegts_section_get_tot         (GstMpegTsSection *section);

Object Hierarchy

  GEnum
   +----GstMpegTsRunningStatus

Description

Details

enum GstMpegTsSectionDVBTableID

typedef enum {
  /* EN 300 468 (DVB) v 1.12.1 */
  GST_MTS_TABLE_ID_NETWORK_INFORMATION_ACTUAL_NETWORK = 0x40,
  GST_MTS_TABLE_ID_NETWORK_INFORMATION_OTHER_NETWORK = 0x41,
  GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_ACTUAL_TS = 0x42,
  GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_OTHER_TS		= 0x46,
  GST_MTS_TABLE_ID_BOUQUET_ASSOCIATION			= 0x4A,
  GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT = 0x4E,
  GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_PRESENT = 0x4F,
  GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_1 = 0x50,
  GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_N = 0x5F,
  GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_1 = 0x60,
  GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_N = 0x6F,
  GST_MTS_TABLE_ID_TIME_DATE				= 0x70,
  GST_MTS_TABLE_ID_RUNNING_STATUS			= 0x71,
  GST_MTS_TABLE_ID_STUFFING				= 0x72,
  GST_MTS_TABLE_ID_TIME_OFFSET				= 0x73,

  /* TS 102 812 (MHP v1.1.3) */
  GST_MTS_TABLE_ID_APPLICATION_INFORMATION_TABLE = 0x74,

  /* TS 102 323 (DVB TV Anytime v1.5.1) */
  GST_MTS_TABLE_ID_CONTAINER				= 0x75,
  GST_MTS_TABLE_ID_RELATED_CONTENT			= 0x76,
  GST_MTS_TABLE_ID_CONTENT_IDENTIFIER			= 0x77,
  
  /* EN 301 192 (DVB specification for data broadcasting) */
  GST_MTS_TABLE_ID_MPE_FEC				= 0x78,

  /* TS 102 323 (DVB TV Anytime v1.5.1) */
  GST_MTS_TABLE_ID_RESOLUTION_NOTIFICATION		= 0x79,

  /* TS 102 772 (DVB-SH Multi-Protocol Encapsulation) */
  GST_MTS_TABLE_ID_MPE_IFEC				= 0x7A,
  
  /* EN 300 468 (DVB) v 1.12.1 */
  GST_MTS_TABLE_ID_DISCONTINUITY_INFORMATION		= 0x7E,
  GST_MTS_TABLE_ID_SELECTION_INFORMATION		= 0x7F,

  /* ETR 289 (DVB Support for use of scrambling and CA) */
  GST_MTS_TABLE_ID_CA_MESSAGE_ECM_0			= 0x80,
  GST_MTS_TABLE_ID_CA_MESSAGE_ECM_1			= 0x81,
  GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_1		= 0x82,
  GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_N		= 0x8F,

  /* ... */

  /* EN 301 790 (DVB interaction channel for satellite distribution channels) */
  GST_MTS_TABLE_ID_SCT					= 0xA0,
  GST_MTS_TABLE_ID_FCT					= 0xA1,
  GST_MTS_TABLE_ID_TCT					= 0xA2,
  GST_MTS_TABLE_ID_SPT					= 0xA3,
  GST_MTS_TABLE_ID_CMT					= 0xA4,
  GST_MTS_TABLE_ID_TBTP					= 0xA5,
  GST_MTS_TABLE_ID_PCR_PACKET_PAYLOAD			= 0xA6,
  GST_MTS_TABLE_ID_TRANSMISSION_MODE_SUPPORT_PAYLOAD = 0xAA,
  GST_MTS_TABLE_ID_TIM					= 0xB0,
  GST_MTS_TABLE_ID_LL_FEC_PARITY_DATA_TABLE		= 0xB1
} GstMpegTsSectionDVBTableID;

Values for a GstMpegTsSection table_id.

These are the registered DVB table_id variants.

see also: GstMpegTsSectionTableID

GST_MTS_TABLE_ID_NETWORK_INFORMATION_ACTUAL_NETWORK

GST_MTS_TABLE_ID_NETWORK_INFORMATION_OTHER_NETWORK

GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_ACTUAL_TS

GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_OTHER_TS

GST_MTS_TABLE_ID_BOUQUET_ASSOCIATION

GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT

GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_PRESENT

GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_1

GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_N

GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_1

GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_N

GST_MTS_TABLE_ID_TIME_DATE

GST_MTS_TABLE_ID_RUNNING_STATUS

GST_MTS_TABLE_ID_STUFFING

GST_MTS_TABLE_ID_TIME_OFFSET

GST_MTS_TABLE_ID_APPLICATION_INFORMATION_TABLE

GST_MTS_TABLE_ID_CONTAINER

GST_MTS_TABLE_ID_RELATED_CONTENT

GST_MTS_TABLE_ID_CONTENT_IDENTIFIER

GST_MTS_TABLE_ID_MPE_FEC

GST_MTS_TABLE_ID_RESOLUTION_NOTIFICATION

GST_MTS_TABLE_ID_MPE_IFEC

GST_MTS_TABLE_ID_DISCONTINUITY_INFORMATION

GST_MTS_TABLE_ID_SELECTION_INFORMATION

GST_MTS_TABLE_ID_CA_MESSAGE_ECM_0

GST_MTS_TABLE_ID_CA_MESSAGE_ECM_1

GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_1

GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_N

GST_MTS_TABLE_ID_SCT

GST_MTS_TABLE_ID_FCT

GST_MTS_TABLE_ID_TCT

GST_MTS_TABLE_ID_SPT

GST_MTS_TABLE_ID_CMT

GST_MTS_TABLE_ID_TBTP

GST_MTS_TABLE_ID_PCR_PACKET_PAYLOAD

GST_MTS_TABLE_ID_TRANSMISSION_MODE_SUPPORT_PAYLOAD

GST_MTS_TABLE_ID_TIM

GST_MTS_TABLE_ID_LL_FEC_PARITY_DATA_TABLE


struct GstMpegTsNIT

struct GstMpegTsNIT {
  gboolean   actual_network;

  GPtrArray  *descriptors;

  GPtrArray *streams;
};

Network Information Table (ISO/IEC 13818-1 / EN 300 468)

The network_id is contained in the subtable_extension field of the container GstMpegTsSection.

gboolean actual_network;

Whether this NIT corresponds to the actual stream

GPtrArray *descriptors;

the global descriptors. [element-type GstMpegTsDescriptor]

GPtrArray *streams;

the streams. [element-type GstMpegTsNITStream]

struct GstMpegTsNITStream

struct GstMpegTsNITStream {
  guint16  transport_stream_id;
  guint16  original_network_id;

  GPtrArray  *descriptors;
};

guint16 transport_stream_id;

guint16 original_network_id;

GPtrArray *descriptors;

. [element-type GstMpegTsDescriptor]

gst_mpegts_section_get_nit ()

const GstMpegTsNIT * gst_mpegts_section_get_nit         (GstMpegTsSection *section);

Returns the GstMpegTsNIT contained in the section.

section :

a GstMpegTsSection of type GST_MPEGTS_SECTION_NIT

Returns :

The GstMpegTsNIT contained in the section, or NULL if an error happened.

struct GstMpegTsBAT

struct GstMpegTsBAT {
  GPtrArray     *descriptors;

  GPtrArray  *streams;
};

descriptors: (element-type GstMpegTsDescriptor): streams: (element-type GstMpegTsBATStream):

DVB Bouquet Association Table (EN 300 468)


struct GstMpegTsBATStream

struct GstMpegTsBATStream {
  guint16   transport_stream_id;
  guint16   original_network_id;

  GPtrArray   *descriptors;
};

struct GstMpegTsSDT

struct GstMpegTsSDT {
  guint16    original_network_id;
  gboolean   actual_ts;

  GPtrArray *services;
};

services: (element-type GstMpegTsSDTService): List of services

Service Description Table (EN 300 468)


struct GstMpegTsSDTService

struct GstMpegTsSDTService {
  guint16    service_id;

  gboolean   EIT_schedule_flag;
  gboolean   EIT_present_following_flag;
  GstMpegTsRunningStatus running_status;
  gboolean   free_CA_mode;

  GPtrArray    *descriptors;
};

descriptors: (element-type GstMpegTsDescriptor): List of descriptors


gst_mpegts_section_get_sdt ()

const GstMpegTsSDT * gst_mpegts_section_get_sdt         (GstMpegTsSection *section);

Returns the GstMpegTsSDT contained in the section.

section :

a GstMpegTsSection of type GST_MPEGTS_SECTION_SDT

Returns :

The GstMpegTsSDT contained in the section, or NULL if an error happened.

struct GstMpegTsEIT

struct GstMpegTsEIT {
  guint16        transport_stream_id;
  guint16        original_network_id;
  guint8         segment_last_section_number;
  guint8         last_table_id;

  gboolean       actual_stream;
  gboolean       present_following;

  GPtrArray     *events;
};

events: (element-type GstMpegTsEITEvent): List of events

Event Information Table (EN 300 468)


struct GstMpegTsEITEvent

struct GstMpegTsEITEvent {
  guint16      event_id;

  GstDateTime *start_time;
  guint32      duration;

  GstMpegTsRunningStatus running_status;
  gboolean     free_CA_mode;

  GPtrArray      *descriptors;
};

descriptors: (element-type GstMpegTsDescriptor): List of descriptors

Event from a GstMpegTsEIT


enum GstMpegTsRunningStatus

typedef enum {
  GST_MPEGTS_RUNNING_STATUS_UNDEFINED = 0,
  GST_MPEGTS_RUNNING_STATUS_NOT_RUNNING,
  GST_MPEGTS_RUNNING_STATUS_STARTS_IN_FEW_SECONDS,
  GST_MPEGTS_RUNNING_STATUS_PAUSING,
  GST_MPEGTS_RUNNING_STATUS_RUNNING,
  GST_MPEGTS_RUNNING_STATUS_OFF_AIR
} GstMpegTsRunningStatus;

Running status of a service.

Corresponds to table 6 of ETSI EN 300 468 (v1.13.0)

GST_MPEGTS_RUNNING_STATUS_UNDEFINED

GST_MPEGTS_RUNNING_STATUS_NOT_RUNNING

GST_MPEGTS_RUNNING_STATUS_STARTS_IN_FEW_SECONDS

GST_MPEGTS_RUNNING_STATUS_PAUSING

GST_MPEGTS_RUNNING_STATUS_RUNNING

GST_MPEGTS_RUNNING_STATUS_OFF_AIR


gst_mpegts_section_get_eit ()

const GstMpegTsEIT * gst_mpegts_section_get_eit         (GstMpegTsSection *section);

Returns the GstMpegTsEIT contained in the section.

section :

a GstMpegTsSection of type GST_MPEGTS_SECTION_EIT

Returns :

The GstMpegTsEIT contained in the section, or NULL if an error happened.

gst_mpegts_section_get_tdt ()

GstDateTime *       gst_mpegts_section_get_tdt          (GstMpegTsSection *section);

Returns the GstDateTime of the TDT

section :

a GstMpegTsSection of type GST_MPEGTS_SECTION_TDT

Returns :

The GstDateTime contained in the section, or NULL if an error happened. Release with gst_date_time_unref when done.

struct GstMpegTsTOT

struct GstMpegTsTOT {
  GstDateTime   *utc_time;

  GPtrArray        *descriptors;
};

descriptors: (element-type GstMpegTsDescriptor): List of descriptors

Time Offset Table (EN 300 468)


gst_mpegts_section_get_tot ()

const GstMpegTsTOT * gst_mpegts_section_get_tot         (GstMpegTsSection *section);

Returns the GstMpegTsTOT contained in the section.

section :

a GstMpegTsSection of type GST_MPEGTS_SECTION_TOT

Returns :

The GstMpegTsTOT contained in the section, or NULL if an error happened.