Message ID | CH3PR11MB793745235FB62652B70A98DCB12C2@CH3PR11MB7937.namprd11.prod.outlook.com |
---|---|
State | Accepted |
Commit | 61afe4d98ce62d9dfc6f0548e18730ba2f621cc2 |
Headers | show |
Series | [FFmpeg-devel,v2] avcodec/cbs_vp8: Improve the bitstream position check | 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 |
Hi, On Tue, Mar 19, 2024 at 2:05 AM Dai, Jianhui J < jianhui.j.dai-at-intel.com@ffmpeg.org> wrote: > 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@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 > Merged. Ronald
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);
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@intel.com> --- libavcodec/cbs_vp8.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)