From c81677e9b73c31508b78123dd6e4473fe45b03cd Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Fri, 15 May 2015 11:42:39 -0400 Subject: [PATCH] vp9: reset loopfilter mode/ref deltas on keyframe. --- libavcodec/vp9.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 23cf99b214..8b1ef67cdf 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -698,6 +698,15 @@ static int decode_frame_header(AVCodecContext *ctx, s->framectxid = c = get_bits(&s->gb, 2); /* loopfilter header data */ + if (s->keyframe || s->errorres || s->intraonly) { + // reset loopfilter defaults + s->lf_delta.ref[0] = 1; + s->lf_delta.ref[1] = 0; + s->lf_delta.ref[2] = -1; + s->lf_delta.ref[3] = -1; + s->lf_delta.mode[0] = 0; + s->lf_delta.mode[1] = 0; + } s->filter.level = get_bits(&s->gb, 6); sharp = get_bits(&s->gb, 3); // if sharpness changed, reinit lim/mblim LUTs. if it didn't change, keep