Merge branch 'mpegts_apidoc_2022-03-31' into 'main'

mpegts: update documentation / defines

See merge request gstreamer/gstreamer!2088
This commit is contained in:
Brad Hards 2024-05-03 17:09:25 +00:00
commit 0a0111b9c3
4 changed files with 177 additions and 8 deletions

View file

@ -901,7 +901,7 @@ gst_mpegts_descriptor_from_registration (const gchar * format_identifier,
/**
* gst_mpegts_descriptor_parse_registration:
* @descriptor: a %GST_MTS_DESC_REGISTRATION #GstMpegtsDescriptor
* @registration_id: (out): The registration ID (in host endiannes)
* @registration_id: (out): The registration ID (in host endianness)
* @additional_info: (out) (allow-none) (array length=additional_info_length): The additional information
* @additional_info_length: (out) (allow-none): The size of @additional_info in bytes.
*

View file

@ -39,6 +39,8 @@
G_BEGIN_DECLS
/*
* As of ISO/IEC 13818-1:2018:
*
* descriptor_tag TS PS Identification
* 0 n/a n/a Reserved
* 1 n/a n/a Reserved
@ -59,7 +61,39 @@ G_BEGIN_DECLS
* 16 X X smoothing buffer descriptor
* 17 X STD_descriptor
* 18 X X IBP descriptor
* 19-63 n/a n/a ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved
* 19-26 X Defined in ISO/IEC 13818-6
* 27 X X MPEG-4_video_descriptor
* 28 X X MPEG-4_audio_descriptor
* 29 X X IOD_descriptor
* 30 X SL_descriptor
* 31 X X FMC_descriptor
* 32 X X external_ES_ID_descriptor
* 33 X X MuxCode_descriptor
* 34 X X FmxBufferSize_descriptor
* 35 X multiplexBuffer_descriptor
* 36 X X content_labeling_descriptor
* 37 X X metadata_pointer_descriptor
* 38 X X metadata_descriptor
* 39 X X metadata_STD_descriptor
* 40 X X AVC video descriptor
* 41 X X IPMP_descriptor (defined in ISO/IEC 13818-11, MPEG-2 IPMP)
* 42 X X AVC timing and HRD descriptor
* 43 X X MPEG-2_AAC_audio_descriptor
* 44 X X FlexMuxTiming_descriptor
* 45 X X MPEG-4_text_descriptor
* 46 X X MPEG-4_audio_extension_descriptor
* 47 X X Auxiliary_video_stream_descriptor
* 48 X X SVC extension descriptor
* 49 X X MVC extension descriptor
* 50 X n/a J2K video descriptor
* 51 X X MVC operation point descriptor
* 52 X X MPEG2_stereoscopic_video_format_descriptor
* 53 X X Stereoscopic_program_info_descriptor
* 54 X X Stereoscopic_video_info_descriptor
* 55 X n/a Transport_profile_descriptor
* 56 X n/a HEVC video descriptor
* 57-62 n/a n/a Rec. ITU-T H.222.0 | ISO/IEC 13818-1 Reserved
* 63 X X Extension_descriptor
* 64-255 n/a n/a User Private
*/
@ -73,6 +107,40 @@ G_BEGIN_DECLS
*
* Consult the relevant specifications for more details.
*/
/**
* GST_MTS_DESC_TRANSPORT_PROTOCOL:
*
* The Transport_profile_descriptor may be associated in the PMT
* to signal a profile value of transport stream in the associated
* program.
*
* Since: 1.22.
*/
/**
* GST_MTS_DESC_HEVC_VIDEO:
*
* For an HEVC video stream, the HEVC video descriptor provides
* basic information for identifying coding parameters, such as
* profile and level parameters of that HEVC video stream. For
* an HEVC temporal video sub-bitstream or an HEVC temporal video
* subset, the HEVC video descriptor provides information such as
* the associated HEVC highest temporal sub-layer representation
* contained in the elementary stream to which it applies. This
* descriptor can also be used to indicate presence of WCG and
* HDR video components in the associated PID as well as additional
* parameters to assist decoders with HDR capability to render
* intended video data on HDR capable display devices.
*
* Since: 1.22.
*/
/**
* GST_MTS_DESC_EXTENSION:
*
* The extension descriptor provides a mechanism to extend the
* Rec. ITU-T H.222.0 | ISO/IEC 13818-1 descriptor range.
*
* Since: 1.22.
*/
typedef enum {
/* 0-18 ISO/IEC 13818-1 (H222.0 06/2012) */
GST_MTS_DESC_RESERVED_00 = 0x00,
@ -135,8 +203,10 @@ typedef enum {
GST_MTS_DESC_MPEG2_STEREOSCOPIC_VIDEO_FORMAT = 0x34,
GST_MTS_DESC_STEREOSCOPIC_PROGRAM_INFO = 0x35,
GST_MTS_DESC_STEREOSCOPIC_VIDEO_INFO = 0x36,
/* 55-63 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved */
GST_MTS_DESC_TRANSPORT_PROTOCOL = 0x37,
GST_MTS_DESC_HEVC_VIDEO = 0x38,
/* 57-62 Rec. ITU-T H.222.0 | ISO/IEC 13818-1 Reserved */
GST_MTS_DESC_EXTENSION = 0x3F,
} GstMpegtsDescriptorType;
/**

View file

@ -182,7 +182,7 @@ typedef gboolean (*GstMpegtsPacketizeFunc) (GstMpegtsSection *section);
* @section_type: The type of section.
* @pid: The PID on which this section was found or belongs to.
* @table_id: The table id of this section. See %GstMpegtsSectionTableID and
* derivates for more information.
* derivatives for more information.
* @subtable_extension: This meaning differs per section. See the documentation
* of the parsed section type for the meaning of this field
* @version_number: Version of the section.
@ -358,8 +358,96 @@ typedef struct _GstMpegtsPMT GstMpegtsPMT;
* 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
* Corresponds to table 2-34 of ITU H.222.0 | ISO/IEC 13818-1:2018
*/
/**
* GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_TEMPORAL_SUBSET:
*
* HEVC temporal video subset of an HEVC video stream conforming to one or more
* profiles defined in Annex A of Rec. ITU-T H.265 | ISO/IEC 23008-2
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_VIDEO_MVCD:
*
* MVCD video sub-bitstream of an AVC video stream conforming to one or more profiles
* defined in Annex I of Rec. ITU-T H.264 | ISO/IEC 14496-10
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_TIMELINE:
*
* Timeline and External Media Information Stream (see ITU H.222.0 | ISO/IEC
* 13818-1:2018 Annex T)
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_ENHANCEMENT:
*
* HEVC enhancement sub-partition which includes TemporalId 0 of an HEVC video
* stream where all NALs units contained in the stream conform to one or more
* profiles defined in Annex G of Rec. ITU-T H.265 | ISO/IEC 23008-2.
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_TEMPORAL_ENHANCEMENT:
*
* HEVC temporal enhancement sub-partition of an HEVC video stream where all
* NAL units contained in the stream conform to one or more profiles defined in
* Annex G of Rec. ITU-T H.265 | ISO/IEC 23008-2.
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_ENHANCEMENT_ANN_H:
*
* HEVC enhancement sub-partition which includes TemporalId 0 of an HEVC video
* stream where all NAL units contained in the stream conform to one or more
* profiles defined in Annex H of Rec. ITU-T H.265 | ISO/IEC 23008-2.
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_TEMPORAL_ENHANCEMENT_ANN_H:
*
* HEVC temporal enhancement sub-partition of an HEVC video stream where all
* NAL units contained in the stream conform to one or more profiles defined
* in Annex H of Rec. ITU-T H.265 | ISO/IEC 23008-2.
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_GREEN_ACCESS_UNITS:
*
* Green access units carried in MPEG-2 sections.
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_AUDIO_MHAS_MAIN:
*
* ISO/IEC 23008-3 Audio with MHAS transport syntax main stream.
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_AUDIO_MHAS_AUXILIARY:
*
* ISO/IEC 23008-3 Audio with MHAS transport syntax auxiliary stream.
*
* Since: 1.22
*/
/**
* GST_MPEGTS_STREAM_TYPE_QUALITY_ACCESS_UNITS:
*
* Quality access units carried in sections.
*
* Since: 1.22
*/
typedef enum {
GST_MPEGTS_STREAM_TYPE_RESERVED_00 = 0x00,
GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1 = 0x01,
@ -398,7 +486,18 @@ typedef enum {
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_VIDEO_HEVC_TEMPORAL_SUBSET = 0x25,
GST_MPEGTS_STREAM_TYPE_VIDEO_MVCD = 0x26,
GST_MPEGTS_STREAM_TYPE_TIMELINE = 0x27,
GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_ENHANCEMENT = 0x28,
GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_TEMPORAL_ENHANCEMENT = 0x29,
GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_ENHANCEMENT_ANN_H = 0x2A,
GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC_TEMPORAL_ENHANCEMENT_ANN_H = 0x2B,
GST_MPEGTS_STREAM_TYPE_GREEN_ACCESS_UNITS = 0x2C,
GST_MPEGTS_STREAM_TYPE_AUDIO_MHAS_MAIN = 0x2D,
GST_MPEGTS_STREAM_TYPE_AUDIO_MHAS_AUXILIARY = 0x2E,
GST_MPEGTS_STREAM_TYPE_QUALITY_ACCESS_UNITS = 0x2F,
/* 0x30 - 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) */

View file

@ -214,7 +214,7 @@ struct _MpegTSBaseClass {
GstFlowReturn (*drain) (MpegTSBase * base);
/* flush all streams
* The hard inicator is used to flush completely on FLUSH_STOP events
* The hard indicator is used to flush completely on FLUSH_STOP events
* or partially in pull mode seeks of tsdemux */
void (*flush) (MpegTSBase * base, gboolean hard);