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....@intel.com>
---
 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 1f7e81cfe6..bb441b7187 100644
--- a/libavcodec/cbs_vp8.c
+++ b/libavcodec/cbs_vp8.c
@@ -328,7 +328,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);
-- 
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".

Reply via email to