Message ID | 20231203181259.63298-1-post@frankplowman.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] libavformat/vvc: Make probe more conservative | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
> > return 0; > > - if ((nal2 & 0x7) == 0) // nuh_temporal_id_plus1 > + if (nuh_temporal_id_plus1 == 0) // nuh_temporal_id_plus1 > + return 0; > + if (nuh_temporal_id_plus1 != 1 && (type >= VVC_IDR_W_RADL && > type <= VVC_RSV_IRAP_11 > + || type == VVC_DCI_NUT || > type == VVC_OPI_NUT > + || type == VVC_VPS_NUT || > type == VVC_SPS_NUT > + || type == VVC_EOS_NUT || > type == VVC_EOB_NUT)) > Hi Frank, Thank you for the patch. You can use a function for these two checks. if (!check_temporal_id(nal2 & 0x7, type)) return 0 return 0; > > switch (type) { > -- > 2.43.0 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
diff --git a/libavformat/vvcdec.c b/libavformat/vvcdec.c index 31c5ae1f14..57d2769465 100644 --- a/libavformat/vvcdec.c +++ b/libavformat/vvcdec.c @@ -35,11 +35,17 @@ static int vvc_probe(const AVProbeData *p) if ((code & 0xffffff00) == 0x100) { uint8_t nal2 = p->buf[i + 1]; int type = (nal2 & 0xF8) >> 3; + const uint8_t nuh_temporal_id_plus1 = nal2 & 0x7; if (code & 0x80) // forbidden_zero_bit return 0; - if ((nal2 & 0x7) == 0) // nuh_temporal_id_plus1 + if (nuh_temporal_id_plus1 == 0) // nuh_temporal_id_plus1 + return 0; + if (nuh_temporal_id_plus1 != 1 && (type >= VVC_IDR_W_RADL && type <= VVC_RSV_IRAP_11 + || type == VVC_DCI_NUT || type == VVC_OPI_NUT + || type == VVC_VPS_NUT || type == VVC_SPS_NUT + || type == VVC_EOS_NUT || type == VVC_EOB_NUT)) return 0; switch (type) {