tsdemux: add support for VVC/H.266

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4940>
This commit is contained in:
Carlos Bentzen 2025-01-10 21:18:45 +01:00
parent 5c2c688c4c
commit 7405866c84
4 changed files with 20 additions and 3 deletions

View file

@ -4883,6 +4883,9 @@ profiles defined in Annex A for service-compatible stereoscopic 3D services</doc
<member name="video_jpeg_xs" value="50" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_JPEG_XS" version="1.26">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">JPEG-XS stream type</doc>
</member>
<member name="video_vvc" value="51" c:identifier="GST_MPEGTS_STREAM_TYPE_VIDEO_VVC" version="1.26">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">VVC/H.266 video stream type</doc>
</member>
<member name="ipmp_stream" value="127" c:identifier="GST_MPEGTS_STREAM_TYPE_IPMP_STREAM">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">IPMP stream</doc>
</member>

View file

@ -225123,7 +225123,7 @@
"presence": "sometimes"
},
"video_%%01x_%%05x": {
"caps": "video/mpeg:\n mpegversion: { (int)1, (int)2, (int)4 }\n systemstream: false\nvideo/x-h264:\n stream-format: byte-stream\nvideo/x-h265:\n stream-format: byte-stream\nvideo/x-vp9:\nvideo/x-av1:\n stream-format: obu-stream\n alignment: frame\nvideo/x-dirac:\nvideo/x-cavs:\nvideo/x-wmv:\n wmvversion: 3\n format: WVC1\nimage/x-jpc:\nimage/x-jxsc:\n",
"caps": "video/mpeg:\n mpegversion: { (int)1, (int)2, (int)4 }\n systemstream: false\nvideo/x-h264:\n stream-format: byte-stream\nvideo/x-h265:\n stream-format: byte-stream\nvideo/x-h266:\n stream-format: byte-stream\nvideo/x-vp9:\nvideo/x-av1:\n stream-format: obu-stream\n alignment: frame\nvideo/x-dirac:\nvideo/x-cavs:\nvideo/x-wmv:\n wmvversion: 3\n format: WVC1\nimage/x-jpc:\nimage/x-jxsc:\n",
"direction": "src",
"presence": "sometimes"
}

View file

@ -289,7 +289,7 @@ typedef struct _GstMpegtsPMT GstMpegtsPMT;
* @GST_MPEGTS_STREAM_TYPE_RESERVED_00: ITU-T | ISO/IEC Reserved
* @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 (i.e.
* 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
@ -398,7 +398,6 @@ 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_JPEG_XS:
*
@ -407,6 +406,15 @@ typedef enum {
* Since: 1.26
*/
GST_MPEGTS_STREAM_TYPE_VIDEO_JPEG_XS = 0x32,
/**
* GST_MPEGTS_STREAM_TYPE_VIDEO_VVC:
*
* VVC/H.266 video stream type
*
* Since: 1.26
*/
GST_MPEGTS_STREAM_TYPE_VIDEO_VVC = 0x33,
/* 0x36 - 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

@ -229,6 +229,7 @@ struct _TSDemuxStream
"systemstream = (boolean) FALSE; " \
"video/x-h264,stream-format=(string)byte-stream;" \
"video/x-h265,stream-format=(string)byte-stream;" \
"video/x-h266,stream-format=(string)byte-stream;" \
"video/x-vp9;" \
"video/x-av1,stream-format=(string)obu-stream,alignment=(string)frame;" \
"video/x-dirac;" \
@ -1781,6 +1782,11 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
caps = gst_caps_new_simple ("video/x-h265",
"stream-format", G_TYPE_STRING, "byte-stream", NULL);
break;
case GST_MPEGTS_STREAM_TYPE_VIDEO_VVC:
is_video = TRUE;
caps = gst_caps_new_simple ("video/x-h266",
"stream-format", G_TYPE_STRING, "byte-stream", NULL);
break;
case GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K:
is_video = TRUE;
desc =