[FFmpeg-devel] [PATCH v2] lavc/vvc: Skip enhancement layer NAL units

Frank Plowman post at frankplowman.com
Thu Apr 18 23:26:20 EEST 2024


The native VVC decoder does not yet support quality/spatial/multiview
scalability.  Bitstreams requiring this feature could cause crashes.
Patch fixes this by skipping NAL units which are not in the base layer,
warning the user while doing so.

Signed-off-by: Frank Plowman <post at frankplowman.com>
---
Changes since v1:
* Change missing feature string from "Multilayer" to "Decoding of
  multilayer bitstreams" for clarity.
 libavcodec/vvc/dec.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c
index a4fc40b40a..6aeec27eaf 100644
--- a/libavcodec/vvc/dec.c
+++ b/libavcodec/vvc/dec.c
@@ -785,6 +785,12 @@ static int decode_nal_unit(VVCContext *s, VVCFrameContext *fc, const H2645NAL *n
 
     s->temporal_id = nal->temporal_id;
 
+    if (nal->nuh_layer_id > 0) {
+        avpriv_report_missing_feature(fc->log_ctx,
+                "Decoding of multilayer bitstreams");
+        return AVERROR_PATCHWELCOME;
+    }
+
     switch (unit->type) {
     case VVC_VPS_NUT:
     case VVC_SPS_NUT:
-- 
2.44.0



More information about the ffmpeg-devel mailing list