[FFmpeg-devel] [PATCH 4/6] avcodec/lagarith: Optimize FRAME_SOLID_RGBA

Michael Niedermayer michael at niedermayer.cc
Mon Aug 20 01:34:06 EEST 2018


On Mon, Aug 13, 2018 at 08:11:52PM +0200, Carl Eugen Hoyos wrote:
> 2018-08-13 2:24 GMT+02:00, Michael Niedermayer <michael at niedermayer.cc>:
> > Fixes: Timeout
> > Fixes:
> > 9484/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LAGARITH_fuzzer-5707859156271104
> >
> > Found-by: continuous fuzzing process
> > https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > ---
> >  libavcodec/lagarith.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/lagarith.c b/libavcodec/lagarith.c
> > index 510a6ff2d6..b9a0649c31 100644
> > --- a/libavcodec/lagarith.c
> > +++ b/libavcodec/lagarith.c
> > @@ -572,8 +572,14 @@ static int lag_decode_frame(AVCodecContext *avctx,
> >
> >          dst = p->data[0];
> >          if (frametype == FRAME_SOLID_RGBA) {
> > +            int w2 = avctx->width>>2;
> 
> qwidth? w2 is hard to read imo.

changed

> 
> > +            uint64_t c = ((uint64_t)offset_gu << 32) | offset_gu;
> >          for (j = 0; j < avctx->height; j++) {
> > -            for (i = 0; i < avctx->width; i++)
> > +            for (i = 0; i < w2; i++) {
> > +                AV_WN64(dst + i * 16    , c);
> > +                AV_WN64(dst + i * 16 + 8, c);
> > +            }
> > +            for (i = 4*w2; i < avctx->width; i++)
> 
> And please add (very) rough numbers to the commit message.

will apply with benchmark details

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you drop bombs on a foreign country and kill a hundred thousand
innocent people, expect your government to call the consequence
"unprovoked inhuman terrorist attacks" and use it to justify dropping
more bombs and killing more people. The technology changed, the idea is old.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180820/aeb82027/attachment.sig>


More information about the ffmpeg-devel mailing list