[FFmpeg-devel] Fix for FFMPEG vp8dec loopfilter delta values reset at keyframes

Ronald Bultje rbultje at google.com
Fri Oct 12 16:20:14 CEST 2012


Hi Sami,

On Fri, Oct 12, 2012 at 3:42 AM, Sami Pietilä <samipietila at google.com> wrote:
>
> Hi all,
>
> while testing a VP8 encoder I found a mismatch between FFMPEG and libvpx VP8
> decoders. The reason for this mismatch is that FFMPEG doesn't reset
> loopfilter delta values at keyframes. Patch that fixes the issue is below.
> I've verified that the output of ffmpeg after this patch matches libvpx. If
> you need I can send you a stream that shows the issue.
>
> Br,
> Sami Pietila
>
>
> diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
> index 3f07b90..0bb5495 100644
> --- a/libavcodec/vp8.c
> +++ b/libavcodec/vp8.c
> @@ -353,6 +353,7 @@ static int decode_frame_header(VP8Context *s, const
> uint8_t *buf, int
> buf_size)
>          memcpy(s->prob->pred8x8c , vp8_pred8x8c_prob_inter ,
> sizeof(s->prob->pred8x8c));
>          memcpy(s->prob->mvc      , vp8_mv_default_prob     ,
> sizeof(s->prob->mvc));
>          memset(&s->segmentation, 0, sizeof(s->segmentation));
> +        memset(&s->lf_delta, 0, sizeof(s->lf_delta));
>      }

Nice catch, thanks for noticing. I've applied it upstream (will flow
to ffmpeg-devel in a few hours), and I'll update Chrome's tree ASAP.
As Luca said on libav-devel, a test vector would be nice for
archiving/regression testing purposes if it's not too much of a
hassle.

Ronald


More information about the ffmpeg-devel mailing list