diff --git a/girs/GstMpegts-1.0.gir b/girs/GstMpegts-1.0.gir
index dfea53a786..0fc16b1c69 100644
--- a/girs/GstMpegts-1.0.gir
+++ b/girs/GstMpegts-1.0.gir
@@ -4883,6 +4883,9 @@ profiles defined in Annex A for service-compatible stereoscopic 3D services
JPEG-XS stream type
+
+ VVC/H.266 video stream type
+
IPMP stream
diff --git a/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json b/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json
index 2e85de8d5d..b53d4a0395 100644
--- a/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json
+++ b/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json
@@ -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"
}
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h b/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h
index 23884426a8..c8f9618cc3 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/gstmpegtssection.h
@@ -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) */
diff --git a/subprojects/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c b/subprojects/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c
index 2d4683890b..cdae23a823 100644
--- a/subprojects/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c
+++ b/subprojects/gst-plugins-bad/gst/mpegtsdemux/tsdemux.c
@@ -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 =