[FFmpeg-devel] [PATCH] avcodec/ffv1dec_template: Optimize common case in run mode

Michael Niedermayer michael at niedermayer.cc
Thu May 23 23:36:10 EEST 2019


On Thu, May 23, 2019 at 10:57:14AM +0200, Carl Eugen Hoyos wrote:
> Am Do., 23. Mai 2019 um 01:47 Uhr schrieb Michael Niedermayer
> <michael at niedermayer.cc>:
> >
> > Fixes: Timeout (14sec -> 9sec)
> > Fixes: 13398/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FFV1_fuzzer-5664106709778432
> >
> > 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/ffv1dec_template.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/libavcodec/ffv1dec_template.c b/libavcodec/ffv1dec_template.c
> > index 1b7f6c4bf5..0b1d176ba1 100644
> > --- a/libavcodec/ffv1dec_template.c
> > +++ b/libavcodec/ffv1dec_template.c
> > @@ -86,11 +86,19 @@ static av_always_inline int RENAME(decode_line)(FFV1Context *s, int w,
> >                          run_mode = 2;
> >                      }
> >                  }
> > +                if (sample[1][x - 1] == sample[0][x - 1]) {
> > +                    while (run_count > 1 && w-x > 1) {
> > +                        sample[1][x] = sample[0][x];
> > +                        x++;
> > +                        run_count--;
> > +                    }
> > +                } else {
> 
> Does this change have a measurable effect on your usual sample files?

decode_line() becomes 1% faster for fate/vsynth2-ffv1.avi
for another fate sample there is a 0.5% speedup
the effect should be bigger for files with "flat" colored areas
the new faster branch is used in 97-100% of the cases in fate samples
compared to the older more complex (which i tested)

vsynth3-ffv1-v3-bgr0.avi had the lowest percentual useage of about 97%


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

Many that live deserve death. And some that die deserve life. Can you give
it to them? Then do not be too eager to deal out death in judgement. For
even the very wise cannot see all ends. -- Gandalf
-------------- 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/20190523/ea0a864b/attachment.sig>


More information about the ffmpeg-devel mailing list