[FFmpeg-cvslog] avcodec/cbs_vp8: Improve the bitstream position check

Dai, Jianhui J git at videolan.org
Tue Mar 26 15:13:17 EET 2024


ffmpeg | branch: master | Dai, Jianhui J <jianhui.j.dai-at-intel.com at ffmpeg.org> | Tue Mar 19 06:05:17 2024 +0000| [61afe4d98ce62d9dfc6f0548e18730ba2f621cc2] | committer: Ronald S. Bultje

avcodec/cbs_vp8: Improve the bitstream position check

The VP8 compressed header may not be byte-aligned due to boolean
coding. Round up byte count for accurate data positioning.

Signed-off-by: Jianhui Dai <jianhui.j.dai at intel.com>
Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=61afe4d98ce62d9dfc6f0548e18730ba2f621cc2
---

 libavcodec/cbs_vp8.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/cbs_vp8.c b/libavcodec/cbs_vp8.c
index afa2e4f980..1f80f34faf 100644
--- a/libavcodec/cbs_vp8.c
+++ b/libavcodec/cbs_vp8.c
@@ -339,7 +339,9 @@ static int cbs_vp8_read_unit(CodedBitstreamContext *ctx,
         return err;
 
     pos = get_bits_count(&gbc);
-    pos /= 8;
+    // Position may not be byte-aligned after compressed header; Round up byte
+    // count for accurate data positioning.
+    pos = (pos + 7) / 8;
     av_assert0(pos <= unit->data_size);
 
     frame->data_ref = av_buffer_ref(unit->data_ref);



More information about the ffmpeg-cvslog mailing list