The v3 spec reserves CTU size 256. Currently, we use an uint8_t* table to hold cb_width and cb_height. If a CTU size of 256 is not split, cb_width and cb_height will overflow to 0. To avoid switching to uint16_t, rejecting CTU size 256 provides a simple solution. --- libavcodec/vvc/ps.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/libavcodec/vvc/ps.c b/libavcodec/vvc/ps.c index f32f1cc5a1..14cedfd1b3 100644 --- a/libavcodec/vvc/ps.c +++ b/libavcodec/vvc/ps.c @@ -649,6 +649,12 @@ static int decode_ps(VVCParamSets *ps, const CodedBitstreamH266Context *h266, vo if (ret < 0) return ret; + if (rsps->sps_log2_ctu_size_minus5 > 2) { + // CTU > 128 are reserved in vvc spec v3 + av_log(log_ctx, AV_LOG_ERROR, "CTU size > 128. \n"); + return AVERROR_PATCHWELCOME; + } + ret = decode_pps(ps, rpps); if (ret < 0) return ret; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".