summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorFrank Galligan <fgalligan@google.com>2013-12-04 19:26:40 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-12-04 19:26:40 -0800
commit8363349b8484f6be9f0cf860e2ae57d3acf838a6 (patch)
treefe5823af3f77be0d5d83678f89442b26124cde4d /vp9
parent61da0870b9637b6ea7ceceb49235404662660fb5 (diff)
parent9ed616a56cc32399d992ca0a3553cec9c3f5e041 (diff)
downloadlibvpx-8363349b8484f6be9f0cf860e2ae57d3acf838a6.tar
libvpx-8363349b8484f6be9f0cf860e2ae57d3acf838a6.tar.gz
libvpx-8363349b8484f6be9f0cf860e2ae57d3acf838a6.tar.bz2
libvpx-8363349b8484f6be9f0cf860e2ae57d3acf838a6.zip
Merge "Fix the initial references to frame buffers."
Diffstat (limited to 'vp9')
-rw-r--r--vp9/common/vp9_onyxc_int.h6
-rw-r--r--vp9/decoder/vp9_decodeframe.c6
-rw-r--r--vp9/decoder/vp9_onyxd_if.c3
3 files changed, 7 insertions, 8 deletions
diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h
index 751accf02..6d14128a8 100644
--- a/vp9/common/vp9_onyxc_int.h
+++ b/vp9/common/vp9_onyxc_int.h
@@ -238,8 +238,10 @@ static int get_free_fb(VP9_COMMON *cm) {
}
static void ref_cnt_fb(int *buf, int *idx, int new_idx) {
- if (buf[*idx] > 0)
- buf[*idx]--;
+ const int ref_index = *idx;
+
+ if (ref_index > 0 && buf[ref_index] > 0)
+ buf[ref_index]--;
*idx = new_idx;
diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c
index 82bace00d..516aa88cb 100644
--- a/vp9/decoder/vp9_decodeframe.c
+++ b/vp9/decoder/vp9_decodeframe.c
@@ -687,12 +687,6 @@ static void apply_frame_size(VP9D_COMP *pbi, int width, int height) {
if (cm->width != width || cm->height != height) {
// Change in frame size.
- if (cm->width == 0 || cm->height == 0) {
- // Assign new frame buffer on first call.
- cm->new_fb_idx = NUM_YV12_BUFFERS - 1;
- cm->fb_idx_ref_cnt[cm->new_fb_idx] = 1;
- }
-
// TODO(agrange) Don't test width/height, check overall size.
if (width > cm->width || height > cm->height) {
// Rescale frame buffers only if they're not big enough already.
diff --git a/vp9/decoder/vp9_onyxd_if.c b/vp9/decoder/vp9_onyxd_if.c
index 25fb3d6d2..4c0cd45a9 100644
--- a/vp9/decoder/vp9_onyxd_if.c
+++ b/vp9/decoder/vp9_onyxd_if.c
@@ -125,6 +125,9 @@ VP9D_PTR vp9_create_decompressor(VP9D_CONFIG *oxcf) {
vp9_zero(*pbi);
+ // Initialize the references to not point to any frame buffers.
+ memset(&cm->ref_frame_map, -1, sizeof(cm->ref_frame_map));
+
if (setjmp(cm->error.jmp)) {
cm->error.setjmp = 0;
vp9_remove_decompressor(pbi);