On Mon, Jul 04, 2011 at 06:25:17AM -0700, Jason Garrett-Glaser wrote:
> On Mon, Jul 4, 2011 at 6:21 AM, Kostya <[email protected]> wrote:
> > On Mon, Jul 04, 2011 at 06:08:20AM -0700, Jason Garrett-Glaser wrote:
> >> 2011/7/4 Måns Rullgård <[email protected]>:
> >> > Jason Garrett-Glaser <[email protected]> writes:
> >> >
> >> >> 2011/7/4 Måns Rullgård <[email protected]>:
> >> >>> "Jason Garrett-Glaser " <[email protected]> writes:
> >> >>>
> >> >>>> Module: libav
> >> >>>> Branch: master
> >> >>>> Commit: 4320a309ce10a7eec93aef239a0776a33b1a5a34
> >> >>>>
> >> >>>> Author:    Jason Garrett-Glaser <[email protected]>
> >> >>>> Committer: Jason Garrett-Glaser <[email protected]>
> >> >>>> Date:      Mon Jun 27 13:07:26 2011 -0700
> >> >>>>
> >> >>>> H.264: make filter_mb_fast support the case of unavailable top mb
> >> >>>>
> >> >>>> Significantly faster deblocking in streams with lots of slices.
> >> >>>>
> >> >>>> ---
> >> >>>>
> >> >>>>  libavcodec/h264_loopfilter.c |   42 
> >> >>>> ++++++++++++++++++++++++++++--------------
> >> >>>>  1 files changed, 28 insertions(+), 14 deletions(-)
> >> >>>
> >> >>> This seems to have introduced some invalid reads per
> >> >>> http://fate.libav.org/x86_32-linux-gcc-valgrind/20110704043908
> >> >>
> >> >> The valgrind log seems to suggest that qp0 =
> >> >> s->current_picture.qscale_table[mb_xy-1]; also causes an invalid read.
> >> >>  This is interesting, as this line executed when we were on the left
> >> >> edge -- even before my patch.
> >> >
> >> > Valgrind is only able to catch it on the top row though.
> >> >
> >> >> Does qscale_table not have edge padding?
> >> >
> >> > Apparently not.
> >>
> >> How's this?
> >>
> >> Jason
> >
> >> From a9608ec7e4795079753eb649eaffdd1d3e90e4dd Mon Sep 17 00:00:00 2001
> >> From: Jason Garrett-Glaser <[email protected]>
> >> Date: Mon, 4 Jul 2011 06:05:34 -0700
> >> Subject: [PATCH] H.264: fix overreads of qscale_table
> >>
> >> filter_mb_fast assumed that qscale_table was padded like many of the other 
> >> tables.
> >> ---
> >>  libavcodec/mpegvideo.c |    5 +++--
> >>  libavcodec/mpegvideo.h |    1 +
> >>  2 files changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
> >> index 4978d28..56c1b35 100644
> >> --- a/libavcodec/mpegvideo.c
> >> +++ b/libavcodec/mpegvideo.c
> >> @@ -285,9 +285,10 @@ int ff_alloc_picture(MpegEncContext *s, Picture *pic, 
> >> int shared){
> >>          }
> >>
> >>          FF_ALLOCZ_OR_GOTO(s->avctx, pic->mbskip_table , mb_array_size * 
> >> sizeof(uint8_t)+2, fail) //the +2 is for the slice end check
> >> -        FF_ALLOCZ_OR_GOTO(s->avctx, pic->qscale_table , mb_array_size * 
> >> sizeof(uint8_t)  , fail)
> >> +        FF_ALLOCZ_OR_GOTO(s->avctx, pic->qscale_table_base , (big_mb_num 
> >> + s->mb_stride) * sizeof(uint8_t)  , fail)
> >>          FF_ALLOCZ_OR_GOTO(s->avctx, pic->mb_type_base , (big_mb_num + 
> >> s->mb_stride) * sizeof(uint32_t), fail)
> >>          pic->mb_type= pic->mb_type_base + 2*s->mb_stride+1;
> >> +        pic->qscale_table= pic->qscale_table_base + 2*s->mb_stride+1;
> >
> > Please stop writing assignments like that. Copypasting is not an excuse.
> 
> You mean without the space?  I'm just doing it for consistency.
> Changing the formatting in that file should be a separate patch.

Since Diego is slacking on that patch, please add a space before committing.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to