diff options
author | John Koleszar <jkoleszar@google.com> | 2011-06-02 00:05:07 -0400 |
---|---|---|
committer | John Koleszar <jkoleszar@google.com> | 2011-06-02 00:05:07 -0400 |
commit | 319404f4f1fc63ce4169974b5c7ddcaa8cd1998b (patch) | |
tree | ab863603c9d79e58178f5ebf75d014ad7b75bc51 /vp8/decoder | |
parent | 3137d6f9c8b5d901200824b73aa5a28afed450b6 (diff) | |
parent | 4101b5c5edf3f1257f8f9870dc16ccd49df22708 (diff) | |
download | libvpx-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.c | 11 |
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; } |