![]() |
![]() |
![]() |
GStreamer Bad Plugins 1.0 Library Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
#include <gst/mpegts/mpegts.h> #define GST_MPEGTS_SECTION_TYPE (section) struct GstMpegtsSection; enum GstMpegtsSectionTableID; enum GstMpegtsSectionType; GstMessage * gst_message_new_mpegts_section (GstObject *parent
,GstMpegtsSection *section
); GstMpegtsSection * gst_message_parse_mpegts_section (GstMessage *message
); gboolean gst_mpegts_section_send_event (GstMpegtsSection *section
,GstElement *element
); GstMpegtsSection * gst_event_parse_mpegts_section (GstEvent *event
); guint8 * gst_mpegts_section_packetize (GstMpegtsSection *section
,gsize *output_size
); GstMpegtsSection * gst_mpegts_section_new (guint16 pid
,guint8 *data
,gsize data_size
); #define gst_mpegts_section_ref (section) #define gst_mpegts_section_unref (section) struct GstMpegtsPatProgram; GPtrArray * gst_mpegts_section_get_pat (GstMpegtsSection *section
); GPtrArray * gst_mpegts_pat_new (void
); GstMpegtsPatProgram * gst_mpegts_pat_program_new (void
); GstMpegtsSection * gst_mpegts_section_from_pat (GPtrArray *programs
,guint16 ts_id
); struct GstMpegtsPMT; struct GstMpegtsPMTStream; enum GstMpegtsStreamType; const GstMpegtsPMT * gst_mpegts_section_get_pmt (GstMpegtsSection *section
); GstMpegtsPMT * gst_mpegts_pmt_new (void
); GstMpegtsPMTStream * gst_mpegts_pmt_stream_new (void
); GstMpegtsSection * gst_mpegts_section_from_pmt (GstMpegtsPMT *pmt
,guint16 pid
); GPtrArray * gst_mpegts_section_get_tsdt (GstMpegtsSection *section
); GPtrArray * gst_mpegts_section_get_cat (GstMpegtsSection *section
);
GBoxed +----GstMpegtsSection
GEnum +----GstMpegtsSectionTableID
GEnum +----GstMpegtsSectionType
GEnum +----GstMpegtsStreamType
For more details, refer to the ITU H.222.0 or ISO/IEC 13818-1 specifications and other specifications mentionned in the documentation.
#define GST_MPEGTS_SECTION_TYPE(section) (GST_MPEGTS_SECTION (section)->section_type)
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)
GstMpegtsSectionType |
The type of section |
The pid on which this section was found | |
The table id of this section | |
This meaning differs per section. See the documentation of the parsed section type for the meaning of this field | |
Version of the section. | |
Applies to current/next stream or not | |
Number of the section (if multiple) | |
Number of the last expected section (if multiple) | |
CRC |
typedef enum { /* ITU H.222.0 / IEC 13818-1 */ GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION = 0x00, GST_MTS_TABLE_ID_CONDITIONAL_ACCESS = 0x01, GST_MTS_TABLE_ID_TS_PROGRAM_MAP = 0x02, GST_MTS_TABLE_ID_TS_DESCRIPTION = 0x03, GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION = 0x04, GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR = 0x05, GST_MTS_TABLE_ID_METADATA = 0x06, GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION = 0x07, /* 0x08 - 0x39 : ITU H.222.0 | ISO/IEC 13818-1 reserved */ /* IEC 13818-6 (DSM-CC) */ GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA = 0x3A, GST_MTS_TABLE_ID_DSM_CC_U_N_MESSAGES = 0x3B, GST_MTS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGES = 0x3C, GST_MTS_TABLE_ID_DSM_CC_STREAM_DESCRIPTORS = 0x3D, GST_MTS_TABLE_ID_DSM_CC_PRIVATE_DATA = 0x3E, GST_MTS_TABLE_ID_DSM_CC_ADDRESSABLE_SECTIONS = 0x3F, /* Unset */ GST_MTS_TABLE_ID_UNSET = 0xFF } 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, GstMpegtsSectionDVBTableID, and GstMpegtsSectionSCTETableID
typedef enum { GST_MPEGTS_SECTION_UNKNOWN = 0, GST_MPEGTS_SECTION_PAT, GST_MPEGTS_SECTION_PMT, GST_MPEGTS_SECTION_CAT, GST_MPEGTS_SECTION_TSDT, GST_MPEGTS_SECTION_EIT, GST_MPEGTS_SECTION_NIT, GST_MPEGTS_SECTION_BAT, GST_MPEGTS_SECTION_SDT, GST_MPEGTS_SECTION_TDT, GST_MPEGTS_SECTION_TOT, GST_MPEGTS_SECTION_ATSC_TVCT, GST_MPEGTS_SECTION_ATSC_CVCT, GST_MPEGTS_SECTION_ATSC_MGT, GST_MPEGTS_SECTION_ATSC_ETT, GST_MPEGTS_SECTION_ATSC_EIT, GST_MPEGTS_SECTION_ATSC_STT } GstMpegtsSectionType;
Types of GstMpegtsSection that the library handles.
Unknown section type | |
Program Association Table (ISO/IEC 13818-1) | |
Program Map Table (ISO/IEC 13818-1) | |
Conditional Access Table (ISO/IEC 13818-1) | |
Transport Stream Description Table (ISO/IEC 13818-1) | |
Event Information Table (EN 300 468) | |
Network Information Table (ISO/IEC 13818-1 / EN 300 468) | |
Bouquet Association Table ((EN 300 468) | |
Service Description Table (EN 300 468) | |
Time and Date Table (EN 300 468) | |
Time Offset Table (EN 300 468) | |
ATSC Terrestrial Virtual Channel Table (A65) | |
ATSC Cable Virtual Channel Table (A65) | |
ATSC Master Guide Table (A65) | |
ATSC Extended Text Table (A65) | |
ATSC Event Information Table (A65) | |
ATSC System Time Table (A65) |
GstMessage * gst_message_new_mpegts_section (GstObject *parent
,GstMpegtsSection *section
);
Creates a new GstMessage for a GstMpegtsSection
.
|
The creator of the message. [transfer none] |
|
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]
|
GstMpegtsSection * gst_message_parse_mpegts_section (GstMessage *message
);
Returns the GstMpegtsSection contained in a message.
|
a GstMessage |
Returns : |
the contained GstMpegtsSection, or NULL . [transfer full]
|
gboolean gst_mpegts_section_send_event (GstMpegtsSection *section
,GstElement *element
);
Creates a custom GstEvent with a GstMpegtsSection
.
The GstEvent is sent to the element
GstElement.
|
The GstElement to send to section event to. [transfer none] |
|
The GstMpegtsSection to put in the event. [transfer none] |
Returns : |
TRUE if the event is sent |
GstMpegtsSection * gst_event_parse_mpegts_section (GstEvent *event
);
Extracts the GstMpegtsSection contained in the event
GstEvent
|
GstEvent containing a GstMpegtsSection. [transfer none] |
Returns : |
The extracted GstMpegtsSection. [transfer full] |
guint8 * gst_mpegts_section_packetize (GstMpegtsSection *section
,gsize *output_size
);
If the data in section
has aldready been packetized, the data pointer is returned
immediately. Otherwise, the data field is allocated and populated.
|
the GstMpegtsSection that holds the data. [transfer none] |
|
gsize to hold the size of the data. [out] |
Returns : |
pointer to section data, or NULL on fail. [transfer none]
|
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.
|
the PID to which this section belongs |
|
a pointer to the beginning of the section (i.e. the first byte should contain the table_id field). [transfer full] |
|
size of the data argument. |
Returns : |
A new GstMpegtsSection if the data was valid,
else NULL . [transfer full]
|
#define gst_mpegts_section_ref(section) ((GstMpegtsSection*) gst_mini_object_ref (GST_MINI_OBJECT_CAST (section)))
#define gst_mpegts_section_unref(section) (gst_mini_object_unref (GST_MINI_OBJECT_CAST (section)))
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).
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
.
|
a GstMpegtsSection of type GST_MPEGTS_SECTION_PAT
|
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]
|
GPtrArray * gst_mpegts_pat_new (void
);
Allocates a new GPtrArray for GstMpegtsPatProgram
Returns : |
A newly allocated GPtrArray. [transfer full][element-type GstMpegtsPatProgram] |
GstMpegtsPatProgram * gst_mpegts_pat_program_new (void
);
Allocates a new GstMpegtsPatProgram.
Returns : |
A newly allocated GstMpegtsPatProgram. [transfer full] |
GstMpegtsSection * gst_mpegts_section_from_pat (GPtrArray *programs
,guint16 ts_id
);
Creates a PAT GstMpegtsSection from the programs
array of GstMpegtsPatPrograms
|
an array of GstMpegtsPatProgram. [transfer full][element-type GstMpegtsPatProgram] |
|
Transport stream ID of the PAT |
Returns : |
a GstMpegtsSection. [transfer full] |
struct GstMpegtsPMT { guint16 pcr_pid; guint16 program_number; 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.
PID of the stream containing PCR | |
array of GstMpegtsDescriptor. [element-type GstMpegtsDescriptor] | |
Array of GstMpegtsPMTStream. [element-type GstMpegtsPMTStream] |
struct GstMpegtsPMTStream { guint8 stream_type; guint16 pid; GPtrArray *descriptors; };
An individual stream definition.
the type of stream. See GstMpegtsStreamType | |
the PID of the stream | |
the descriptors of the stream. [element-type GstMpegtsDescriptor] |
typedef enum { GST_MPEGTS_STREAM_TYPE_RESERVED_00 = 0x00, GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1 = 0x01, GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2 = 0x02, GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1 = 0x03, GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2 = 0x04, GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS = 0x05, GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS = 0x06, GST_MPEGTS_STREAM_TYPE_MHEG = 0x07, GST_MPEGTS_STREAM_TYPE_DSM_CC = 0x08, GST_MPEGTS_STREAM_TYPE_H_222_1 = 0x09, GST_MPEGTS_STREAM_TYPE_DSMCC_A = 0x0a, GST_MPEGTS_STREAM_TYPE_DSMCC_B = 0x0b, GST_MPEGTS_STREAM_TYPE_DSMCC_C = 0x0c, GST_MPEGTS_STREAM_TYPE_DSMCC_D = 0x0d, GST_MPEGTS_STREAM_TYPE_AUXILIARY = 0x0e, GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS = 0x0f, GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4 = 0x10, GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM = 0x11, GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS = 0x12, GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS = 0x13, GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD = 0x14, GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS = 0x15, GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS = 0x16, GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL = 0x17, GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL = 0x18, GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD = 0x19, GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP = 0x1a, GST_MPEGTS_STREAM_TYPE_VIDEO_H264 = 0x1b, GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN = 0x1c, GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT = 0x1d, GST_MPEGTS_STREAM_TYPE_VIDEO_RVC = 0x1e, GST_MPEGTS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM = 0x1f, GST_MPEGTS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM = 0x20, GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K = 0x21, GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW = 0x22, GST_MPEGTS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW = 0x23, GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC = 0x24, /* 0x24 - 0x7e : Rec. ITU-T H.222.0 | ISO/IEC 13818-1 Reserved */ GST_MPEGTS_STREAM_TYPE_IPMP_STREAM = 0x7f /* 0x80 - 0xff : User Private (or defined in other specs) */ } 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
ITU-T | ISO/IEC Reserved | |
ISO/IEC 11172-2 Video | |
Rec. ITU-T H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream | |
ISO/IEC 11172-3 Audio | |
ISO/IEC 13818-3 Audio | |
private sections | |
PES packets containing private data | |
ISO/IEC 13522 MHEG | |
Annex A DSM-CC | |
Rec. ITU-T H.222.1 | |
ISO/IEC 13818-6 type A | |
ISO/IEC 13818-6 type B | |
ISO/IEC 13818-6 type C | |
ISO/IEC 13818-6 type D | |
auxiliary streams | |
ISO/IEC 13818-7 Audio with ADTS transport syntax | |
ISO/IEC 14496-2 Visual | |
ISO/IEC 14496-3 Audio with the LATM transport syntax as defined in ISO/IEC 14496-3 | |
ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in PES packets | |
ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in ISO/IEC 14496_sections | |
ISO/IEC 13818-6 Synchronized Download Protocol | |
Metadata carried in PES packets | |
Metadata carried in metadata_sections | |
Metadata carried in ISO/IEC 13818-6 Data Carousel | |
Metadata carried in ISO/IEC 13818-6 Object Carousel | |
Metadata carried in ISO/IEC 13818-6 Synchronized Download Protocol | |
IPMP stream (defined in ISO/IEC 13818-11, MPEG-2 IPMP) | |
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 | |
ISO/IEC 14496-3 Audio, without using any additional transport syntax, such as DST, ALS and SLS | |
ISO/IEC 14496-17 Text | |
Auxiliary video stream as defined in ISO/IEC 23002-3 | |
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 | |
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 | |
Video stream conforming to one or more profiles as defined in Rec. ITU-T T.800 | ISO/IEC 15444-1 | |
Additional view Rec. ITU-T H.262 | ISO/IEC 13818-2 video stream for service-compatible stereoscopic 3D services | |
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 | |
IPMP stream |
const GstMpegtsPMT * gst_mpegts_section_get_pmt (GstMpegtsSection *section
);
Returns the GstMpegtsPMT contained in the section
.
|
a GstMpegtsSection of type GST_MPEGTS_SECTION_PMT
|
Returns : |
The GstMpegtsPMT contained in the section, or NULL if an error
happened. |
GstMpegtsPMT * gst_mpegts_pmt_new (void
);
Allocates and initializes a new GstMpegtsPMT.
Returns : |
GstMpegtsPMT. [transfer full] |
GstMpegtsPMTStream * gst_mpegts_pmt_stream_new (void
);
Allocates and initializes a new GstMpegtsPMTStream.
Returns : |
GstMpegtsPMTStream. [transfer full] |
GstMpegtsSection * gst_mpegts_section_from_pmt (GstMpegtsPMT *pmt
,guint16 pid
);
Creates a GstMpegtsSection from pmt
that is bound to pid
|
a GstMpegtsPMT to create a GstMpegtsSection from. [transfer full] |
|
The PID that the GstMpegtsPMT belongs to |
Returns : |
GstMpegtsSection. [transfer full] |
GPtrArray * gst_mpegts_section_get_tsdt (GstMpegtsSection *section
);
Returns the array of GstMpegtsDescriptor contained in the section
|
a GstMpegtsSection of type GST_MPEGTS_SECTION_TSDT
|
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]
|
GPtrArray * gst_mpegts_section_get_cat (GstMpegtsSection *section
);
Returns the array of GstMpegtsDescriptor contained in the Condtional Access Table.
|
a GstMpegtsSection of type GST_MPEGTS_SECTION_CAT
|
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]
|