Reproduces a bug to remain consistent with libvpx' behaviour.
Unified · Split
| @@ -642,6 +642,8 @@ static int decode_frame_header(AVCodecContext *ctx, · 641 unmodified lines | |||
| 642 | s->s.h.refreshctx = s->s.h.errorres ? 0 : get_bits1(&s->gb); | 642 | s->s.h.refreshctx = s->s.h.errorres ? 0 : get_bits1(&s->gb); |
| 643 | s->s.h.parallelmode = s->s.h.errorres ? 1 : get_bits1(&s->gb); | 643 | s->s.h.parallelmode = s->s.h.errorres ? 1 : get_bits1(&s->gb); |
| 644 | s->s.h.framectxid = c = get_bits(&s->gb, 2); | 644 | s->s.h.framectxid = c = get_bits(&s->gb, 2); |
| 645 | if (s->s.h.keyframe || s->s.h.intraonly) | ||
| 646 | s->s.h.framectxid = 0; // BUG: libvpx ignores this field in keyframes | ||
| 645 | 647 | ||
| 646 | /* loopfilter header data */ | 648 | /* loopfilter header data */ |
| 647 | if (s->s.h.keyframe || s->s.h.errorres || s->s.h.intraonly) { | 649 | if (s->s.h.keyframe || s->s.h.errorres || s->s.h.intraonly) { |