Message ID | 20240413105554.57677-1-post@frankplowman.com |
---|---|
State | Accepted |
Commit | 993c231de0b1a7574c0951959314bb692646b93e |
Headers | show |
Series | [FFmpeg-devel] lavc/vvc: Increase size of ctb_size_y | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On 4/13/2024 7:55 AM, Frank Plowman wrote: > sps_log2_ctu_size_minus5 is between 0 and 2, with 3 reserved for future > use. The VVC decoder allows sps_log2_ctu_size_minus5 to be 3, and so > ctb_size_y should be at least 16 bits to prevent overflows. An > alternative patch would leave sps_log2_ctu_size_minus5 as 8 bits and > disallow sps_log2_ctu_size_minus5 = 3. The spec says a value of 3 should be ignored, which i assume means decoding is not meant to stop. So this patch is probably better than outright rejecting the value in CBS. > > Signed-off-by: Frank Plowman <post@frankplowman.com> > --- > libavcodec/vvc/ps.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/vvc/ps.h b/libavcodec/vvc/ps.h > index 78f1687fef..6656a06320 100644 > --- a/libavcodec/vvc/ps.h > +++ b/libavcodec/vvc/ps.h > @@ -69,7 +69,7 @@ typedef struct VVCSPS { > uint8_t bit_depth; ///< BitDepth > uint8_t qp_bd_offset; ///< QpBdOffset > uint8_t ctb_log2_size_y; ///< CtbLog2SizeY > - uint8_t ctb_size_y; ///< CtbSizeY > + uint16_t ctb_size_y; ///< CtbSizeY > uint8_t min_cb_log2_size_y; ///< MinCbLog2SizeY > uint8_t min_cb_size_y; ///< MinCbSizeY > uint8_t max_tb_size_y; ///< MaxTbSizeY
On Sat, Apr 13, 2024 at 9:55 PM James Almer <jamrial@gmail.com> wrote: > On 4/13/2024 7:55 AM, Frank Plowman wrote: > > sps_log2_ctu_size_minus5 is between 0 and 2, with 3 reserved for future > > use. The VVC decoder allows sps_log2_ctu_size_minus5 to be 3, and so > > ctb_size_y should be at least 16 bits to prevent overflows. An > > alternative patch would leave sps_log2_ctu_size_minus5 as 8 bits and > > disallow sps_log2_ctu_size_minus5 = 3. > > The spec says a value of 3 should be ignored, which i assume means > decoding is not meant to stop. So this patch is probably better than > outright rejecting the value in CBS. Applied. Thank you, Frank and James. > > > > > Signed-off-by: Frank Plowman <post@frankplowman.com> > > --- > > libavcodec/vvc/ps.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/libavcodec/vvc/ps.h b/libavcodec/vvc/ps.h > > index 78f1687fef..6656a06320 100644 > > --- a/libavcodec/vvc/ps.h > > +++ b/libavcodec/vvc/ps.h > > @@ -69,7 +69,7 @@ typedef struct VVCSPS { > > uint8_t bit_depth; > ///< BitDepth > > uint8_t qp_bd_offset; > ///< QpBdOffset > > uint8_t ctb_log2_size_y; > ///< CtbLog2SizeY > > - uint8_t ctb_size_y; > ///< CtbSizeY > > + uint16_t ctb_size_y; > ///< CtbSizeY > > uint8_t min_cb_log2_size_y; > ///< MinCbLog2SizeY > > uint8_t min_cb_size_y; > ///< MinCbSizeY > > uint8_t max_tb_size_y; > ///< MaxTbSizeY > _______________________________________________ > 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/libavcodec/vvc/ps.h b/libavcodec/vvc/ps.h index 78f1687fef..6656a06320 100644 --- a/libavcodec/vvc/ps.h +++ b/libavcodec/vvc/ps.h @@ -69,7 +69,7 @@ typedef struct VVCSPS { uint8_t bit_depth; ///< BitDepth uint8_t qp_bd_offset; ///< QpBdOffset uint8_t ctb_log2_size_y; ///< CtbLog2SizeY - uint8_t ctb_size_y; ///< CtbSizeY + uint16_t ctb_size_y; ///< CtbSizeY uint8_t min_cb_log2_size_y; ///< MinCbLog2SizeY uint8_t min_cb_size_y; ///< MinCbSizeY uint8_t max_tb_size_y; ///< MaxTbSizeY
sps_log2_ctu_size_minus5 is between 0 and 2, with 3 reserved for future use. The VVC decoder allows sps_log2_ctu_size_minus5 to be 3, and so ctb_size_y should be at least 16 bits to prevent overflows. An alternative patch would leave sps_log2_ctu_size_minus5 as 8 bits and disallow sps_log2_ctu_size_minus5 = 3. Signed-off-by: Frank Plowman <post@frankplowman.com> --- libavcodec/vvc/ps.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)