summaryrefslogtreecommitdiff
path: root/gst-libs/gst/mpegts/gstmpegtssection.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/mpegts/gstmpegtssection.h')
-rw-r--r--gst-libs/gst/mpegts/gstmpegtssection.h123
1 files changed, 93 insertions, 30 deletions
diff --git a/gst-libs/gst/mpegts/gstmpegtssection.h b/gst-libs/gst/mpegts/gstmpegtssection.h
index b25418352..95a72085a 100644
--- a/gst-libs/gst/mpegts/gstmpegtssection.h
+++ b/gst-libs/gst/mpegts/gstmpegtssection.h
@@ -58,9 +58,12 @@ GType gst_mpegts_section_get_type (void);
* @GST_MPEGTS_SECTION_ATSC_ETT: ATSC Extended Text Table (A65)
* @GST_MPEGTS_SECTION_ATSC_EIT: ATSC Event Information Table (A65)
* @GST_MPEGTS_SECTION_ATSC_STT: ATSC System Time Table (A65)
+ * @GST_MPEGTS_SECTION_ATSC_RRT: ATSC Rating Region Table (A65)
* @GST_MPEGTS_SECTION_SCTE_SIT: SCTE Splice Information Table (SCTE-35)
*
- * Types of #GstMpegtsSection that the library handles.
+ * Types of #GstMpegtsSection that the library handles. This covers all the
+ * MPEG-TS and derivate specification that the library can properly identify and
+ * use.
*/
typedef enum {
GST_MPEGTS_SECTION_UNKNOWN = 0,
@@ -86,6 +89,21 @@ typedef enum {
/**
* GstMpegtsSectionTableID:
+ * @GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION: Program Association Table (PAT)
+ * @GST_MTS_TABLE_ID_CONDITIONAL_ACCESS: Conditional Access Table (CAT)
+ * @GST_MTS_TABLE_ID_TS_PROGRAM_MAP: Program Map Table (PMT)
+ * @GST_MTS_TABLE_ID_TS_DESCRIPTION: Transport Stream Description Table
+ * @GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION: ISO/IEC 14496 Scene Description Table
+ * @GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR: ISO/IEC 14496 Object Descriptor Table
+ * @GST_MTS_TABLE_ID_METADATA: Metadata Section
+ * @GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION: IPMP Control Information
+ * @GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA: DSM-CC Multi-Protocol Encapsulated (MPE) Data
+ * @GST_MTS_TABLE_ID_DSM_CC_U_N_MESSAGES: DSM-CC U-N Messages
+ * @GST_MTS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGES: DSM-CC Download Data Messages
+ * @GST_MTS_TABLE_ID_DSM_CC_STREAM_DESCRIPTORS: DSM-CC Stream Descriptors
+ * @GST_MTS_TABLE_ID_DSM_CC_PRIVATE_DATA: DSM-CC Private Data
+ * @GST_MTS_TABLE_ID_DSM_CC_ADDRESSABLE_SECTIONS: DSM-CC Addressable Section
+ * @GST_MTS_TABLE_ID_UNSET: Unset section table_id (value is forbidden to use in actual sections)
*
* Values for a #GstMpegtsSection table_id
*
@@ -104,6 +122,32 @@ typedef enum {
GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR = 0x05,
GST_MTS_TABLE_ID_METADATA = 0x06,
GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION = 0x07,
+ /**
+ * GST_MTS_TABLE_ID_14496_SECTION:
+ *
+ * ISO/IEC 14496 Section.
+ *
+ * Since: 1.20
+ */
+ GST_MTS_TABLE_ID_14496_SECTION = 0x08,
+
+ /**
+ * GST_MTS_TABLE_ID_23001_11_SECTION:
+ *
+ * ISO/IEC 23001-11 (Green Access Unit) Section.
+ *
+ * Since: 1.20
+ */
+ GST_MTS_TABLE_ID_23001_11_SECTION = 0x09,
+
+ /**
+ * GST_MTS_TABLE_ID_23001_10_SECTION:
+ *
+ * ISO/ISO 23001-10 (Quality Access Unit) Section.
+ *
+ * Since: 1.20
+ */
+ GST_MTS_TABLE_ID_23001_10_SECTION = 0x0A,
/* 0x08 - 0x39 : ITU H.222.0 | ISO/IEC 13818-1 reserved */
@@ -120,22 +164,26 @@ typedef enum {
} GstMpegtsSectionTableID;
+/**
+ * GstMpegtsPacketizeFunc: (attributes doc.skip=true)
+ */
typedef gboolean (*GstMpegtsPacketizeFunc) (GstMpegtsSection *section);
/**
* GstMpegtsSection:
- * @section_type: The type of section
- * @pid: The pid on which this section was found
- * @table_id: The table id of this 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.
* @subtable_extension: This meaning differs per section. See the documentation
- * of the parsed section type for the meaning of this field
+ * of the parsed section type for the meaning of this field
* @version_number: Version of the section.
* @current_next_indicator: Applies to current/next stream or not
* @section_number: Number of the section (if multiple)
* @last_section_number: Number of the last expected section (if multiple)
- * @crc: CRC
+ * @crc: Checksum (if applicable)
*
- * Mpeg-TS Section Information (SI) (ISO/IEC 13818-1)
+ * Mpeg-TS Section Information (SI) (ISO/IEC 13818-1) object.
*/
struct _GstMpegtsSection
{
@@ -174,6 +222,7 @@ struct _GstMpegtsSection
* FIXME : Maybe make public later on when allowing creation of
* sections to that people can create private short sections ? */
gboolean short_section;
+
GstMpegtsPacketizeFunc packetizer;
/* Padding for future extension */
@@ -230,9 +279,10 @@ typedef struct _GstMpegtsPMT GstMpegtsPMT;
/**
* GstMpegtsStreamType:
* @GST_MPEGTS_STREAM_TYPE_RESERVED_00: ITU-T | ISO/IEC Reserved
- * @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1: ISO/IEC 11172-2 Video
+ * @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1: ISO/IEC 11172-2 Video (i.e. MPEG-1 Video)
* @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2: Rec. ITU-T H.262 | ISO/IEC 13818-2
- * Video or ISO/IEC 11172-2 constrained parameter video stream
+ * Video or ISO/IEC 11172-2 constrained parameter video stream (i.e.
+ * MPEG-2 Video)
* @GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1: ISO/IEC 11172-3 Audio
* @GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2: ISO/IEC 13818-3 Audio
* @GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS: private sections
@@ -245,34 +295,34 @@ typedef struct _GstMpegtsPMT GstMpegtsPMT;
* @GST_MPEGTS_STREAM_TYPE_DSMCC_C: ISO/IEC 13818-6 type C
* @GST_MPEGTS_STREAM_TYPE_DSMCC_D: ISO/IEC 13818-6 type D
* @GST_MPEGTS_STREAM_TYPE_AUXILIARY: auxiliary streams
- * @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS: ISO/IEC 13818-7 Audio with ADTS
- * transport syntax
- * @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4: ISO/IEC 14496-2 Visual
- * @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM: ISO/IEC 14496-3 Audio with the LATM
- * transport syntax as defined in ISO/IEC 14496-3
+ * @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS: ISO/IEC 13818-7 Audio (AAC) with ADTS
+ * transport syntax
+ * @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4: ISO/IEC 14496-2 Visual (MPEG-4 Video)
+ * @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM: ISO/IEC 14496-3 Audio (AAC) with the LATM
+ * transport syntax as defined in ISO/IEC 14496-3
* @GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS: ISO/IEC 14496-1
- * SL-packetized stream or FlexMux stream carried in PES packets
+ * SL-packetized stream or FlexMux stream carried in PES packets
* @GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS: ISO/IEC 14496-1 SL-packetized
- * stream or FlexMux stream carried in ISO/IEC 14496_sections
+ * stream or FlexMux stream carried in ISO/IEC 14496_sections
* @GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD: ISO/IEC 13818-6 Synchronized
- * Download Protocol
+ * Download Protocol
* @GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS: Metadata carried in PES packets
* @GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS: Metadata carried in metadata_sections
* @GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL: Metadata carried in ISO/IEC
- * 13818-6 Data Carousel
+ * 13818-6 Data Carousel
* @GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL: Metadata carried in
- * ISO/IEC 13818-6 Object Carousel
+ * ISO/IEC 13818-6 Object Carousel
* @GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD: Metadata carried in
- * ISO/IEC 13818-6 Synchronized Download Protocol
+ * ISO/IEC 13818-6 Synchronized Download Protocol
* @GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP: IPMP stream (defined in ISO/IEC 13818-11,
- * MPEG-2 IPMP)
+ * MPEG-2 IPMP)
* @GST_MPEGTS_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_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN: ISO/IEC 14496-3 Audio, without
- * using any additional transport syntax, such as DST, ALS and SLS
+ * @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN: ISO/IEC 14496-3 (AAC) Audio, without
+ * using any additional transport syntax, such as DST, ALS and SLS
* @GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT: ISO/IEC 14496-17 Text
* @GST_MPEGTS_STREAM_TYPE_VIDEO_RVC: Auxiliary video stream as defined in
* ISO/IEC 23002-3
@@ -283,16 +333,18 @@ typedef struct _GstMpegtsPMT GstMpegtsPMT;
* 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_MPEGTS_STREAM_TYPE_VIDEO_JP2K: Video stream conforming to one or more
- * profiles as defined in Rec. ITU-T T.800 | ISO/IEC 15444-1
+ * profiles as defined in Rec. ITU-T T.800 | ISO/IEC 15444-1 (i.e. JPEG 2000)
* @GST_MPEGTS_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_MPEGTS_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_MPEGTS_STREAM_TYPE_VIDEO_HEVC: Rec. ITU-T H.265 | ISO/IEC 23008-2 video
+ * stream or an HEVC temporal video sub-bitstream
* @GST_MPEGTS_STREAM_TYPE_IPMP_STREAM: IPMP stream
*
- * Type of mpeg-ts stream type.
+ * 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
@@ -339,8 +391,17 @@ typedef enum {
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
+ GST_MPEGTS_STREAM_TYPE_IPMP_STREAM = 0x7f,
/* 0x80 - 0xff : User Private (or defined in other specs) */
+
+ /**
+ * GST_MPEGTS_STREAM_TYPE_USER_PRIVATE_EA:
+ *
+ * User Private stream id (used for VC-1) as defined by SMPTE RP227.
+ *
+ * Since: 1.20
+ */
+ GST_MPEGTS_STREAM_TYPE_USER_PRIVATE_EA = 0xea,
} GstMpegtsStreamType;
/**
@@ -350,7 +411,7 @@ typedef enum {
* @descriptors: (element-type GstMpegtsDescriptor): the descriptors of the
* stream
*
- * An individual stream definition.
+ * An individual stream definition of a #GstMpegtsPMT.
*/
struct _GstMpegtsPMTStream
{
@@ -362,11 +423,13 @@ struct _GstMpegtsPMTStream
/**
* GstMpegtsPMT:
- * @pcr_pid: PID of the stream containing PCR
- * @descriptors: (element-type GstMpegtsDescriptor): array of #GstMpegtsDescriptor
+ * @pcr_pid: PID of the stream containing the PCR for this program.
+ * @program_number: The program to which this PMT is applicable.
+ * @descriptors: (element-type GstMpegtsDescriptor): Array of #GstMpegtsDescriptor
* @streams: (element-type GstMpegtsPMTStream): Array of #GstMpegtsPMTStream
*
- * Program Map Table (ISO/IEC 13818-1).
+ * Program Map Table (ISO/IEC 13818-1). Provides the mappings between program
+ * numbers and the program elements that comprise them.
*
* The program_number is contained in the subtable_extension field of the
* container #GstMpegtsSection.