Base MPEG-TS sections

Base MPEG-TS sections — Sections for ITU H.222.0 | ISO/IEC 13818-1

Functions

Types and Values

Object Hierarchy

    GBoxed
    ╰── GstMpegTsSection
    GEnum
    ├── GstMpegTsSectionTableID
    ├── GstMpegTsSectionType
    ╰── GstMpegTsStreamType

Includes

#include <gst/mpegts/mpegts.h>

Description

For more details, refer to the ITU H.222.0 or ISO/IEC 13818-1 specifications and other specifications mentionned in the documentation.

Functions

GST_MPEGTS_SECTION_TYPE()

#define GST_MPEGTS_SECTION_TYPE(section) (GST_MPEGTS_SECTION (section)->section_type)

gst_message_new_mpegts_section ()

GstMessage *
gst_message_new_mpegts_section (GstObject *parent,
                                GstMpegTsSection *section);

Creates a new GstMessage for a GstMpegTsSection .

Parameters

parent

The creator of the message.

[transfer none]

section

The GstMpegTsSection to put in a message.

[transfer none]

Returns

The new GstMessage to be posted, or NULL if the section is not valid.

[transfer full]


gst_message_parse_mpegts_section ()

GstMpegTsSection *
gst_message_parse_mpegts_section (GstMessage *message);

Returns the GstMpegTsSection contained in a message.

Parameters

message

a GstMessage

 

Returns

the contained GstMpegTsSection, or NULL.

[transfer full]


gst_mpegts_section_new ()

GstMpegTsSection *
gst_mpegts_section_new (guint16 pid,
                        guint8 *data,
                        gsize data_size);

Creates a new GstMpegTsSection from the provided data .

Note: Ensuring data is big enough to contain the full section is the responsibility of the caller. If it is not big enough, NULL will be returned.

Note: it is the responsibility of the caller to ensure data does point to the beginning of the section.

Parameters

pid

the PID to which this section belongs

 

data

a pointer to the beginning of the section (i.e. the first byte should contain the table_id field).

[transfer full]

data_size

size of the data argument.

 

Returns

A new GstMpegTsSection if the data was valid, else NULL.

[transfer full]


gst_mpegts_section_ref()

#define gst_mpegts_section_ref(section)   ((GstMpegTsSection*) gst_mini_object_ref (GST_MINI_OBJECT_CAST (section)))

gst_mpegts_section_unref()

#define gst_mpegts_section_unref(section) (gst_mini_object_unref (GST_MINI_OBJECT_CAST (section)))

gst_mpegts_section_get_pat ()

GPtrArray *
gst_mpegts_section_get_pat (GstMpegTsSection *section);

Parses a Program Association Table (ITU H.222.0, ISO/IEC 13818-1).

Returns the array of GstMpegTsPatProgram contained in the section.

Note: The PAT "transport_id" field corresponds to the "subtable_extension" field of the provided section .

Parameters

Returns

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

[transfer container][element-type GstMpegTsPatProgram]


gst_mpegts_section_get_pmt ()

const GstMpegTsPMT *
gst_mpegts_section_get_pmt (GstMpegTsSection *section);

Returns the GstMpegTsPMT contained in the section .

Parameters

Returns

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


gst_mpegts_section_get_tsdt ()

GPtrArray *
gst_mpegts_section_get_tsdt (GstMpegTsSection *section);

Returns the array of GstMpegTsDescriptor contained in the section

Parameters

Returns

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

[transfer container][element-type GstMpegTsDescriptor]


gst_mpegts_section_get_cat ()

GPtrArray *
gst_mpegts_section_get_cat (GstMpegTsSection *section);

Returns the array of GstMpegTsDescriptor contained in the Condtional Access Table.

Parameters

Returns

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

[transfer container][element-type GstMpegTsDescriptor]

Types and Values

struct GstMpegTsSection

struct GstMpegTsSection {
  GstMpegTsSectionType   section_type;

  guint16       pid;
  guint8        table_id;

  guint16       subtable_extension;
  guint8        version_number;

  gboolean      current_next_indicator;

  guint8        section_number;
  guint8        last_section_number;

  guint32       crc;
};

Mpeg-TS Section Information (SI) (ISO/IEC 13818-1)

Members

GstMpegTsSectionType section_type;

The type of section

 

guint16 pid;

The pid on which this section was found

 

guint8 table_id;

The table id of this section

 

guint16 subtable_extension;

This meaning differs per section. See the documentation of the parsed section type for the meaning of this field

 

guint8 version_number;

Version of the section.

 

gboolean current_next_indicator;

Applies to current/next stream or not

 

guint8 section_number;

Number of the section (if multiple)

 

guint8 last_section_number;

Number of the last expected section (if multiple)

 

guint32 crc;

CRC

 

enum GstMpegTsSectionTableID

Values for a GstMpegTsSection table_id

These are the registered ITU H.222.0 | ISO/IEC 13818-1 table_id variants.

see also GstMpegTsSectionATSCTableID and GstMpegTsSectionDVBTableID.

Members

GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION

   

GST_MTS_TABLE_ID_CONDITIONAL_ACCESS

   

GST_MTS_TABLE_ID_TS_PROGRAM_MAP

   

GST_MTS_TABLE_ID_TS_DESCRIPTION

   

GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION

   

GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR

   

GST_MTS_TABLE_ID_METADATA

   

GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION

   

GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA

   

GST_MTS_TABLE_ID_DSM_CC_U_N_MESSAGES

   

GST_MTS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGES

   

GST_MTS_TABLE_ID_DSM_CC_STREAM_DESCRIPTORS

   

GST_MTS_TABLE_ID_DSM_CC_PRIVATE_DATA

   

GST_MTS_TABLE_ID_DSM_CC_ADDRESSABLE_SECTIONS

   

GST_MTS_TABLE_ID_UNSET

   

enum GstMpegTsSectionType

Types of GstMpegTsSection that the library handles.

Members

GST_MPEGTS_SECTION_UNKNOWN

Unknown section type

 

GST_MPEGTS_SECTION_PAT

Program Association Table (ISO/IEC 13818-1)

 

GST_MPEGTS_SECTION_PMT

Program Map Table (ISO/IEC 13818-1)

 

GST_MPEGTS_SECTION_CAT

Conditional Access Table (ISO/IEC 13818-1)

 

GST_MPEGTS_SECTION_TSDT

Transport Stream Description Table (ISO/IEC 13818-1)

 

GST_MPEGTS_SECTION_EIT

Event Information Table (EN 300 468)

 

GST_MPEGTS_SECTION_NIT

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

 

GST_MPEGTS_SECTION_BAT

Bouquet Association Table ((EN 300 468)

 

GST_MPEGTS_SECTION_SDT

Service Description Table (EN 300 468)

 

GST_MPEGTS_SECTION_TDT

Time and Date Table (EN 300 468)

 

GST_MPEGTS_SECTION_TOT

Time Offset Table (EN 300 468)

 

struct GstMpegTsPatProgram

struct GstMpegTsPatProgram {
  guint16 program_number;
  guint16 network_or_program_map_PID;
};

A program entry from a Program Association Table (ITU H.222.0, ISO/IEC 13818-1).

Members

guint16 program_number;

the program number

 

guint16 network_or_program_map_PID;

the network of program map PID

 

struct GstMpegTsPMT

struct GstMpegTsPMT {
  guint16    pcr_pid;

  GPtrArray    *descriptors;
  GPtrArray *streams;
};

Program Map Table (ISO/IEC 13818-1).

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

Members

guint16 pcr_pid;

PID of the stream containing PCR

 

GPtrArray *descriptors;

array of GstMpegTsDescriptor.

[element-type GstMpegTsDescriptor]

GPtrArray *streams;

Array of GstMpegTsPMTStream.

[element-type GstMpegTsPMTStream]

struct GstMpegTsPMTStream

struct GstMpegTsPMTStream {
  guint8      stream_type;
  guint16     pid;

  GPtrArray     *descriptors;
};

An individual stream definition.

Members

guint8 stream_type;

the type of stream. See GstMpegTsStreamType

 

guint16 pid;

the PID of the stream

 

GPtrArray *descriptors;

the descriptors of the stream.

[element-type GstMpegTsDescriptor]

enum GstMpegTsStreamType

Type of mpeg-ts stream type.

These values correspond to the base standard registered types. Depending on the variant of mpeg-ts being used (Bluray, ATSC, DVB, ...), other types might also be used, but will not conflict with these.

Corresponds to table 2-34 of ITU H.222.0 | ISO/IEC 13818-1

Members

GST_MPEG_TS_STREAM_TYPE_RESERVED_00

ITU-T | ISO/IEC Reserved

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG1

ISO/IEC 11172-2 Video

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2

Rec. ITU-T H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream

 

GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG1

ISO/IEC 11172-3 Audio

 

GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG2

ISO/IEC 13818-3 Audio

 

GST_MPEG_TS_STREAM_TYPE_PRIVATE_SECTIONS

private sections

 

GST_MPEG_TS_STREAM_TYPE_PRIVATE_PES_PACKETS

PES packets containing private data

 

GST_MPEG_TS_STREAM_TYPE_MHEG

ISO/IEC 13522 MHEG

 

GST_MPEG_TS_STREAM_TYPE_DSM_CC

Annex A DSM-CC

 

GST_MPEG_TS_STREAM_TYPE_H_222_1

Rec. ITU-T H.222.1

 

GST_MPEG_TS_STREAM_TYPE_DSMCC_A

ISO/IEC 13818-6 type A

 

GST_MPEG_TS_STREAM_TYPE_DSMCC_B

ISO/IEC 13818-6 type B

 

GST_MPEG_TS_STREAM_TYPE_DSMCC_C

ISO/IEC 13818-6 type C

 

GST_MPEG_TS_STREAM_TYPE_DSMCC_D

ISO/IEC 13818-6 type D

 

GST_MPEG_TS_STREAM_TYPE_AUXILIARY

auxiliary streams

 

GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_ADTS

ISO/IEC 13818-7 Audio with ADTS transport syntax

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG4

ISO/IEC 14496-2 Visual

 

GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_LATM

ISO/IEC 14496-3 Audio with the LATM transport syntax as defined in ISO/IEC 14496-3

 

GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS

ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in PES packets

 

GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_SECTIONS

ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in ISO/IEC 14496_sections

 

GST_MPEG_TS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD

ISO/IEC 13818-6 Synchronized Download Protocol

 

GST_MPEG_TS_STREAM_TYPE_METADATA_PES_PACKETS

Metadata carried in PES packets

 

GST_MPEG_TS_STREAM_TYPE_METADATA_SECTIONS

Metadata carried in metadata_sections

 

GST_MPEG_TS_STREAM_TYPE_METADATA_DATA_CAROUSEL

Metadata carried in ISO/IEC 13818-6 Data Carousel

 

GST_MPEG_TS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL

Metadata carried in ISO/IEC 13818-6 Object Carousel

 

GST_MPEG_TS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD

Metadata carried in ISO/IEC 13818-6 Synchronized Download Protocol

 

GST_MPEG_TS_STREAM_TYPE_MPEG2_IPMP

IPMP stream (defined in ISO/IEC 13818-11, MPEG-2 IPMP)

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_H264

AVC video stream conforming to one or more profiles defined in Annex A of Rec. ITU-T H.264 | ISO/IEC 14496-10 or AVC video sub-bitstream of SVC as defined in 2.1.78 or MVC base view sub-bitstream, as defined in 2.1.85, or AVC video sub-bitstream of MVC, as defined in 2.1.88

 

GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_CLEAN

ISO/IEC 14496-3 Audio, without using any additional transport syntax, such as DST, ALS and SLS

 

GST_MPEG_TS_STREAM_TYPE_MPEG4_TIMED_TEXT

ISO/IEC 14496-17 Text

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_RVC

Auxiliary video stream as defined in ISO/IEC 23002-3

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM

SVC video sub-bitstream of an AVC video stream conforming to one or more profiles defined in Annex G of Rec. ITU-T H.264 | ISO/IEC 14496-10

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM

MVC video sub-bitstream of an AVC video stream conforming to one or more profiles defined in Annex H of Rec. ITU-T H.264 | ISO/IEC 14496-10

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_JP2K

Video stream conforming to one or more profiles as defined in Rec. ITU-T T.800 | ISO/IEC 15444-1

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW

Additional view Rec. ITU-T H.262 | ISO/IEC 13818-2 video stream for service-compatible stereoscopic 3D services

 

GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW

Additional view Rec. ITU-T H.264 | ISO/IEC 14496-10 video stream conforming to one or more profiles defined in Annex A for service-compatible stereoscopic 3D services

 

GST_MPEG_TS_STREAM_TYPE_IPMP_STREAM

IPMP stream