Base MPEG-TS descriptors

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

Functions

Types and Values

Object Hierarchy

    GBoxed
    ╰── GstMpegTsDescriptor
    GEnum
    ├── GstMpegTsDescriptorType
    ╰── GstMpegTsIso639AudioType

Includes

#include <gst/mpegts/mpegts.h>

Description

These are the base descriptor types and methods.

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_find_descriptor ()

const GstMpegTsDescriptor *
gst_mpegts_find_descriptor (GPtrArray *descriptors,
                            guint8 tag);

Finds the first descriptor of type tag in the array.

Note: To look for descriptors that can be present more than once in an array of descriptors, iterate the GArray manually.

Parameters

descriptors

an array of GstMpegTsDescriptor.

[element-type GstMpegTsDescriptor][transfer none]

tag

the tag to look for

 

Returns

the first descriptor matchin tag , else NULL.

[transfer none]


gst_mpegts_parse_descriptors ()

GPtrArray *
gst_mpegts_parse_descriptors (guint8 *buffer,
                              gsize buf_len);

Parses the descriptors present in buffer and returns them as an array.

Note: The data provided in buffer will not be copied.

Parameters

buffer

descriptors to parse.

[transfer none]

buf_len

Size of buffer

 

Returns

an array of the parsed descriptors or NULL if there was an error. Release with g_array_unref when done with it.

[transfer full][element-type GstMpegTsDescriptor]


gst_mpegts_descriptor_from_custom ()

GstMpegTsDescriptor *
gst_mpegts_descriptor_from_custom (guint8 tag,
                                   const guint8 *data,
                                   gsize length);

Creates a GstMpegTsDescriptor with custom tag and data

Parameters

tag

descriptor tag

 

data

descriptor data (after tag and length field).

[transfer none]

length

length of data

 

gst_mpegts_descriptor_from_registration ()

GstMpegTsDescriptor *
gst_mpegts_descriptor_from_registration
                               (const gchar *format_identifier,
                                guint8 *additional_info,
                                gsize additional_info_length);

Creates a GST_MTS_DESC_REGISTRATION GstMpegTsDescriptor

Return: GstMpegTsDescriptor, NULL on failure

Parameters

format_identifier

a 4 character format identifier string.

[transfer none]

additional_info

pointer to optional additional info.

[transfer none][allow-none]

additional_info_length

length of the optional additional_info

 

gst_mpegts_descriptor_parse_iso_639_language ()

gboolean
gst_mpegts_descriptor_parse_iso_639_language
                               (const GstMpegTsDescriptor *descriptor,
                                GstMpegTsISO639LanguageDescriptor *res);

Extracts the iso 639-2 language information from descriptor .

Note: Use gst_tag_get_language_code if you want to get the the ISO 639-1 language code from the returned ISO 639-2 one.

Parameters

descriptor

a GST_MTS_DESC_ISO_639_LANGUAGE GstMpegTsDescriptor

 

res

the GstMpegTsISO639LanguageDescriptor to fill.

[out][transfer none]

Returns

TRUE if parsing succeeded, else FALSE.


gst_mpegts_descriptor_parse_dvb_stream_identifier ()

gboolean
gst_mpegts_descriptor_parse_dvb_stream_identifier
                               (const GstMpegTsDescriptor *descriptor,
                                guint8 *component_tag);

Extracts the component tag from descriptor .

Parameters

descriptor

a GST_MTS_DESC_DVB_CONTENT GstMpegTsDescriptor

 

component_tag

the component tag.

[out][transfer none]

Returns

TRUE if the parsing happended correctly, else FALSE.


gst_mpegts_descriptor_parse_logical_channel ()

gboolean
gst_mpegts_descriptor_parse_logical_channel
                               (const GstMpegTsDescriptor *descriptor,
                                GstMpegTsLogicalChannelDescriptor *res);

Extracts the logical channels from descriptor .

Parameters

descriptor

a GST_MTS_DESC_DTG_LOGICAL_CHANNEL GstMpegTsDescriptor

 

res

the GstMpegTsLogicalChannelDescriptor to fill.

[out][transfer none]

Returns

TRUE if parsing succeeded, else FALSE.

Types and Values

struct GstMpegTsDescriptor

struct GstMpegTsDescriptor {
  guint8 tag;
  guint8 tag_extension;
  guint8 length;
  guint8 *data;
};

Mpeg-TS descriptor (ISO/IEC 13818-1).

Members

guint8 tag;

the type of descriptor

 

guint8 tag_extension;

the extended type (if descriptor_tag is 0x7f)

 

guint8 length;

the length of the descriptor content (excluding tag/length field)

 

guint8 *data;

the full descriptor data (including tag, extension, length). The first two bytes are the tag and tag_extension .

 

enum GstMpegTsDescriptorType

The type of GstMpegTsDescriptor

These values correspond to the registered descriptor type from the base MPEG-TS specifications (ITU H.222.0 | ISO/IEC 13818-1).

Consult the relevant specifications for more details.

Members

GST_MTS_DESC_RESERVED_00

   

GST_MTS_DESC_RESERVED_01

   

GST_MTS_DESC_VIDEO_STREAM

   

GST_MTS_DESC_AUDIO_STREAM

   

GST_MTS_DESC_HIERARCHY

   

GST_MTS_DESC_REGISTRATION

   

GST_MTS_DESC_DATA_STREAM_ALIGNMENT

   

GST_MTS_DESC_TARGET_BACKGROUND_GRID

   

GST_MTS_DESC_VIDEO_WINDOW

   

GST_MTS_DESC_CA

   

GST_MTS_DESC_ISO_639_LANGUAGE

   

GST_MTS_DESC_SYSTEM_CLOCK

   

GST_MTS_DESC_MULTIPLEX_BUFFER_UTILISATION

   

GST_MTS_DESC_COPYRIGHT

   

GST_MTS_DESC_MAXIMUM_BITRATE

   

GST_MTS_DESC_PRIVATE_DATA_INDICATOR

   

GST_MTS_DESC_SMOOTHING_BUFFER

   

GST_MTS_DESC_STD

   

GST_MTS_DESC_IBP

   

GST_MTS_DESC_DSMCC_CAROUSEL_IDENTIFIER

   

GST_MTS_DESC_DSMCC_ASSOCIATION_TAG

   

GST_MTS_DESC_DSMCC_DEFERRED_ASSOCIATION_TAG

   

GST_MTS_DESC_DSMCC_NPT_REFERENCE

   

GST_MTS_DESC_DSMCC_NPT_ENDPOINT

   

GST_MTS_DESC_DSMCC_STREAM_MODE

   

GST_MTS_DESC_DSMCC_STREAM_EVENT

   

GST_MTS_DESC_MPEG4_VIDEO

   

GST_MTS_DESC_MPEG4_AUDIO

   

GST_MTS_DESC_IOD

   

GST_MTS_DESC_SL

   

GST_MTS_DESC_FMC

   

GST_MTS_DESC_EXTERNAL_ES_ID

   

GST_MTS_DESC_MUX_CODE

   

GST_MTS_DESC_FMX_BUFFER_SIZE

   

GST_MTS_DESC_MULTIPLEX_BUFFER

   

GST_MTS_DESC_CONTENT_LABELING

   

GST_MTS_DESC_METADATA_POINTER

   

GST_MTS_DESC_METADATA

   

GST_MTS_DESC_METADATA_STD

   

GST_MTS_DESC_AVC_VIDEO

   

GST_MTS_DESC_IPMP

   

GST_MTS_DESC_AVC_TIMING_AND_HRD

   

GST_MTS_DESC_MPEG2_AAC_AUDIO

   

GST_MTS_DESC_FLEX_MUX_TIMING

   

GST_MTS_DESC_MPEG4_TEXT

   

GST_MTS_DESC_MPEG4_AUDIO_EXTENSION

   

GST_MTS_DESC_AUXILIARY_VIDEO_STREAM

   

GST_MTS_DESC_SVC_EXTENSION

   

GST_MTS_DESC_MVC_EXTENSION

   

GST_MTS_DESC_J2K_VIDEO

   

GST_MTS_DESC_MVC_OPERATION_POINT

   

GST_MTS_DESC_MPEG2_STEREOSCOPIC_VIDEO_FORMAT

   

GST_MTS_DESC_STEREOSCOPIC_PROGRAM_INFO

   

GST_MTS_DESC_STEREOSCOPIC_VIDEO_INFO

   

enum GstMpegTsMiscDescriptorType

The type of GstMpegTsDescriptor

These values correspond to miscellaneous descriptor types that are not yet identified from known specifications.

Members

GST_MTS_DESC_AC3_AUDIO_STREAM

   

GST_MTS_DESC_DTG_LOGICAL_CHANNEL

   

struct GstMpegTsISO639LanguageDescriptor

struct GstMpegTsISO639LanguageDescriptor {
  guint                    nb_language;
  gchar                    language[64][3];
  GstMpegTsIso639AudioType audio_type[64];
};

enum GstMpegTsIso639AudioType

Members

GST_MPEGTS_AUDIO_TYPE_UNDEFINED

   

GST_MPEGTS_AUDIO_TYPE_CLEAN_EFFECTS

   

GST_MPEGTS_AUDIO_TYPE_HEARING_IMPAIRED

   

GST_MPEGTS_AUDIO_TYPE_VISUAL_IMPAIRED_COMMENTARY

   

struct GstMpegTsLogicalChannel

struct GstMpegTsLogicalChannel {
  guint16   service_id;
  gboolean  visible_service;
  guint16   logical_channel_number;
};

struct GstMpegTsLogicalChannelDescriptor

struct GstMpegTsLogicalChannelDescriptor {
  guint                   nb_channels;
  GstMpegTsLogicalChannel channels[64];
};