[FFmpeg-devel] [PATCH] lavc/vvc: AVERROR_PATCHWELCOME for subpictures

Frank Plowman post at frankplowman.com
Mon Mar 11 20:53:31 EET 2024


VVC's subpictures feature is not yet implemented in the native decoder.
Throw an AVERROR_PATCHWELCOME when trying to decode a bitstream using
the feature.  Fixes crashes when trying to decode bitstreams which
use the feature.

Signed-off-by: Frank Plowman <post at frankplowman.com>
---
 libavcodec/vvc/vvc_ps.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/libavcodec/vvc/vvc_ps.c b/libavcodec/vvc/vvc_ps.c
index e6e46d2039..62515a6343 100644
--- a/libavcodec/vvc/vvc_ps.c
+++ b/libavcodec/vvc/vvc_ps.c
@@ -72,6 +72,18 @@ static int sps_map_pixel_format(VVCSPS *sps, void *log_ctx)
     return 0;
 }
 
+static int sps_subpic_info(VVCSPS *sps, void *log_ctx)
+{
+    const H266RawSPS *r = sps->r;
+
+    if (r->sps_num_subpics_minus1 > 0) {
+        avpriv_report_missing_feature(log_ctx, "Subpictures");
+        return AVERROR_PATCHWELCOME;
+    }
+
+    return 0;
+}
+
 static int sps_bit_depth(VVCSPS *sps, void *log_ctx)
 {
     const H266RawSPS *r = sps->r;
@@ -177,6 +189,9 @@ static int sps_derive(VVCSPS *sps, void *log_ctx)
     int ret;
     const H266RawSPS *r = sps->r;
 
+    ret = sps_subpic_info(sps, log_ctx);
+    if (ret < 0)
+        return ret;
     ret = sps_bit_depth(sps, log_ctx);
     if (ret < 0)
         return ret;
-- 
2.44.0



More information about the ffmpeg-devel mailing list