[FFmpeg-cvslog] vp9: use resetctx in the same way as libvpx.

Ronald S. Bultje git at videolan.org
Fri Sep 4 16:07:46 CEST 2015


ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Wed Sep  2 12:20:29 2015 -0400| [8d25a11dc79c11880e0f03722344dddd95a90f43] | committer: Ronald S. Bultje

vp9: use resetctx in the same way as libvpx.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8d25a11dc79c11880e0f03722344dddd95a90f43
---

 libavcodec/vp9.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index b986c1e..c804686 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -856,7 +856,7 @@ static int decode_frame_header(AVCodecContext *ctx,
         }
     }
 
-    if (s->keyframe || s->errorres || s->intraonly) {
+    if (s->keyframe || s->errorres || (s->intraonly && s->resetctx == 3)) {
         s->prob_ctx[0].p = s->prob_ctx[1].p = s->prob_ctx[2].p =
                            s->prob_ctx[3].p = vp9_default_probs;
         memcpy(s->prob_ctx[0].coef, vp9_default_coef_probs,
@@ -867,6 +867,10 @@ static int decode_frame_header(AVCodecContext *ctx,
                sizeof(vp9_default_coef_probs));
         memcpy(s->prob_ctx[3].coef, vp9_default_coef_probs,
                sizeof(vp9_default_coef_probs));
+    } else if (s->intraonly && s->resetctx == 2) {
+        s->prob_ctx[c].p = vp9_default_probs;
+        memcpy(s->prob_ctx[c].coef, vp9_default_coef_probs,
+               sizeof(vp9_default_coef_probs));
     }
 
     // next 16 bits is size of the rest of the header (arith-coded)



More information about the ffmpeg-cvslog mailing list