diff options
author | John Koleszar <jkoleszar@google.com> | 2011-06-02 00:05:12 -0400 |
---|---|---|
committer | John Koleszar <jkoleszar@google.com> | 2011-06-02 00:05:13 -0400 |
commit | 32817d6fbe5169413ea05e33bf5a509fcf9f4218 (patch) | |
tree | 283a0c34c08897378cb3e8ea60f173e0d1a11838 /vp8/decoder | |
parent | 2289ba4b9c98ab2f34daaff53f131ff79f5ed59d (diff) | |
parent | 4101b5c5edf3f1257f8f9870dc16ccd49df22708 (diff) | |
download | libvpx-32817d6fbe5169413ea05e33bf5a509fcf9f4218.tar libvpx-32817d6fbe5169413ea05e33bf5a509fcf9f4218.tar.gz libvpx-32817d6fbe5169413ea05e33bf5a509fcf9f4218.tar.bz2 libvpx-32817d6fbe5169413ea05e33bf5a509fcf9f4218.zip |
Merge remote branch 'origin/master' into experimental
Change-Id: I993dbef81ca3d1638e16c4134aa8dc177e57875c
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 d10b2cb34..23a3c7d06 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" @@ -161,16 +162,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); @@ -192,6 +196,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; } |