shithub: libvpx

Download patch

ref: e3bf55dedbe9c95824f53a22a241166579e50dbe
parent: 00f1cf40ed90acd7e5a94ea7fc9c7b5e6fbc01a0
author: hkuang <[email protected]>
date: Fri Oct 17 06:09:56 EDT 2014

Correct the logic of ready_for_new_data.

This should be set right after decoder really start to decode frame
instead setting at the end.

Even decoder does not have a displayable frame to show and return NULL
to application, this should be set too.

Change-Id: If0313a834bc64e3b0f05a84f4459d444d9eab0d8

--- a/vp9/decoder/vp9_decoder.c
+++ b/vp9/decoder/vp9_decoder.c
@@ -232,6 +232,8 @@
       cm->frame_refs[0].buf->corrupted = 1;
   }
 
+  pbi->ready_for_new_data = 0;
+
   // Check if the previous frame was a frame without any references to it.
   if (cm->new_fb_idx >= 0 && cm->frame_bufs[cm->new_fb_idx].ref_count == 0)
     cm->release_fb_cb(cm->cb_priv,
@@ -279,8 +281,6 @@
     cm->current_video_frame++;
   }
 
-  pbi->ready_for_new_data = 0;
-
   cm->error.setjmp = 0;
   return retcode;
 }
@@ -296,11 +296,11 @@
   if (pbi->ready_for_new_data == 1)
     return ret;
 
+  pbi->ready_for_new_data = 1;
+
   /* no raw frame to show!!! */
   if (!cm->show_frame)
     return ret;
-
-  pbi->ready_for_new_data = 1;
 
 #if CONFIG_VP9_POSTPROC
   if (!cm->show_existing_frame) {