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"> <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> <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">JPEG-XS stream type</doc>
</member> </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"> <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> <doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h">IPMP stream</doc>
</member> </member>

View File

@ -225123,7 +225123,7 @@
"presence": "sometimes" "presence": "sometimes"
}, },
"video_%%01x_%%05x": { "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", "direction": "src",
"presence": "sometimes" "presence": "sometimes"
} }

View File

@ -398,7 +398,6 @@ typedef enum {
GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW = 0x22, 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_H264_STEREO_ADDITIONAL_VIEW = 0x23,
GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC = 0x24, 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: * GST_MPEGTS_STREAM_TYPE_VIDEO_JPEG_XS:
* *
@ -407,6 +406,15 @@ typedef enum {
* Since: 1.26 * Since: 1.26
*/ */
GST_MPEGTS_STREAM_TYPE_VIDEO_JPEG_XS = 0x32, 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, GST_MPEGTS_STREAM_TYPE_IPMP_STREAM = 0x7f,
/* 0x80 - 0xff : User Private (or defined in other specs) */ /* 0x80 - 0xff : User Private (or defined in other specs) */

View File

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