vp9: ignore frame_context_index field in key-/intraonly-frames.
authorRonald S. Bultje <rsbultje@gmail.com>
Sun, 17 Apr 2016 13:28:56 +0000 (09:28 -0400)
committerRonald S. Bultje <rsbultje@gmail.com>
Sun, 17 Apr 2016 13:28:56 +0000 (09:28 -0400)
Reproduces a bug to remain consistent with libvpx' behaviour.

libavcodec/vp9.c

index 5c6f176..cb2a4a2 100644 (file)
@@ -642,6 +642,8 @@ static int decode_frame_header(AVCodecContext *ctx,
     s->s.h.refreshctx   = s->s.h.errorres ? 0 : get_bits1(&s->gb);
     s->s.h.parallelmode = s->s.h.errorres ? 1 : get_bits1(&s->gb);
     s->s.h.framectxid   = c = get_bits(&s->gb, 2);
+    if (s->s.h.keyframe || s->s.h.intraonly)
+        s->s.h.framectxid = 0; // BUG: libvpx ignores this field in keyframes
 
     /* loopfilter header data */
     if (s->s.h.keyframe || s->s.h.errorres || s->s.h.intraonly) {