From 32b6d31ef3abd45186cfc69607ffe66837588d53 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Fri, 15 May 2015 14:15:46 -0400 Subject: [PATCH] vp9: don't allow compound references if error_resilience is enabled. libvpx (probably accidentally) clears the bits if error_res is set, along with keyframe/intraonly. This probably wasn't the intention (since it's local data), but it's behaviour we have to copy... --- libavcodec/vp9.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index bc88bf9680..9540f3d812 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -648,8 +648,9 @@ static int decode_frame_header(AVCodecContext *ctx, s->highprecisionmvs = get_bits1(&s->gb); s->filtermode = get_bits1(&s->gb) ? FILTER_SWITCHABLE : get_bits(&s->gb, 2); - s->allowcompinter = s->signbias[0] != s->signbias[1] || - s->signbias[0] != s->signbias[2]; + s->allowcompinter = !s->errorres && + (s->signbias[0] != s->signbias[1] || + s->signbias[0] != s->signbias[2]); if (s->allowcompinter) { if (s->signbias[0] == s->signbias[1]) { s->fixcompref = 2;