summaryrefslogtreecommitdiff
path: root/vp8/decoder
diff options
context:
space:
mode:
authorJohn Koleszar <jkoleszar@google.com>2011-06-02 00:05:07 -0400
committerJohn Koleszar <jkoleszar@google.com>2011-06-02 00:05:07 -0400
commit319404f4f1fc63ce4169974b5c7ddcaa8cd1998b (patch)
treeab863603c9d79e58178f5ebf75d014ad7b75bc51 /vp8/decoder
parent3137d6f9c8b5d901200824b73aa5a28afed450b6 (diff)
parent4101b5c5edf3f1257f8f9870dc16ccd49df22708 (diff)
downloadlibvpx-319404f4f1fc63ce4169974b5c7ddcaa8cd1998b.tar
libvpx-319404f4f1fc63ce4169974b5c7ddcaa8cd1998b.tar.gz
libvpx-319404f4f1fc63ce4169974b5c7ddcaa8cd1998b.tar.bz2
libvpx-319404f4f1fc63ce4169974b5c7ddcaa8cd1998b.zip
Merge remote branch 'internal/upstream' into HEAD
Diffstat (limited to 'vp8/decoder')
-rw-r--r--vp8/decoder/onyxd_if.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/vp8/decoder/onyxd_if.c b/vp8/decoder/onyxd_if.c
index 3233265c2..de34055dc 100644
--- a/vp8/decoder/onyxd_if.c
+++ b/vp8/decoder/onyxd_if.c
@@ -24,6 +24,7 @@
#include "vp8/common/threading.h"
#include "decoderthreading.h"
#include <stdio.h>
+#include <assert.h>
#include "vp8/common/quant_common.h"
#include "vpx_scale/vpxscale.h"
@@ -164,16 +165,19 @@ int vp8dx_set_reference(VP8D_PTR ptr, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_C
int free_fb;
if (ref_frame_flag == VP8_LAST_FLAG)
- *ref_fb_ptr = cm->lst_fb_idx;
+ ref_fb_ptr = &cm->lst_fb_idx;
else if (ref_frame_flag == VP8_GOLD_FLAG)
- *ref_fb_ptr = cm->gld_fb_idx;
+ ref_fb_ptr = &cm->gld_fb_idx;
else if (ref_frame_flag == VP8_ALT_FLAG)
- *ref_fb_ptr = cm->alt_fb_idx;
+ ref_fb_ptr = &cm->alt_fb_idx;
else
return -1;
/* Find an empty frame buffer. */
free_fb = get_free_fb(cm);
+ /* Decrease fb_idx_ref_cnt since it will be increased again in
+ * ref_cnt_fb() below. */
+ cm->fb_idx_ref_cnt[free_fb]--;
/* Manage the reference counters and copy image. */
ref_cnt_fb (cm->fb_idx_ref_cnt, ref_fb_ptr, free_fb);
@@ -195,6 +199,7 @@ static int get_free_fb (VP8_COMMON *cm)
if (cm->fb_idx_ref_cnt[i] == 0)
break;
+ assert(i < NUM_YV12_BUFFERS);
cm->fb_idx_ref_cnt[i] = 1;
return i;
}