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 full]

Returns

TRUE if parsing succeeded, else FALSE.


gst_mpegts_descriptor_parse_iso_639_language_idx ()

gboolean
gst_mpegts_descriptor_parse_iso_639_language_idx
                               (const GstMpegtsDescriptor *descriptor,
                                guint idx,
                                gchar **lang,
                                GstMpegtsIso639AudioType *audio_type);

Extracts the iso 639-2 language information from specific table id in 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

 

idx

Table id of the language to parse

 

lang

4-byte gchar array to hold the language code.

[out][transfer full]

audio_type

the GstMpegtsIso639AudioType to set.

[out][transfer none][allow-none]

Returns

TRUE if parsing succeeded, else FALSE.


gst_mpegts_descriptor_parse_iso_639_language_nb ()

guint
gst_mpegts_descriptor_parse_iso_639_language_nb
                               (const GstMpegtsDescriptor *descriptor);

Returns

The number of languages in descriptor


gst_mpegts_iso_639_language_descriptor_free ()

void
gst_mpegts_iso_639_language_descriptor_free
                               (GstMpegtsISO639LanguageDescriptor *desc);

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 length .

 

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];
  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];
};