lavf/vvcdec: fix false-positive VVC detection of MP3 files

The VVC probe only checked forbidden_zero_bit but not
nuh_layer_id range in the NAL unit header. This allowed
certain MP3 files to be misdetected as VVC streams because
their frame data coincidentally contained 00 00 01 start
code patterns that looked like valid NAL units.

Add a check for nuh_layer_id (must be <= 55). The existing
check_temporal_id() already validates nuh_temporal_id_plus1
is in [1, 7]. Together these two checks reject the bogus
NAL units produced by MP3 frame data.

Note: nuh_reserved_zero_bit is intentionally not checked
here, as it is reserved for future use by the spec and may
become non-zero in a later revision.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
This commit is contained in:
Jun Zhao
2026-03-16 15:30:32 +08:00
committed by James Almer
parent 4b83833087
commit c49f6bec20

View File

@@ -56,6 +56,9 @@ static int vvc_probe(const AVProbeData *p)
if (code & 0x80) // forbidden_zero_bit
return 0;
if ((code & 0x3F) > 55) // nuh_layer_id must be in [0, 55]
return 0;
if (!check_temporal_id(nal2 & 0x7, type))
return 0;