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. Jason _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
