summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_firstpass.c
diff options
context:
space:
mode:
authorJohn Koleszar <jkoleszar@google.com>2013-02-22 11:22:03 -0800
committerJohn Koleszar <jkoleszar@google.com>2013-02-27 08:22:40 -0800
commit800ad0b886ce6776712c1835878e500ffd43af64 (patch)
treea253967bc6d9a753e16c9c25dc6a238387e5ac52 /vp9/encoder/vp9_firstpass.c
parentb683eecf6dfe9fc947394df6f0e047e2fcbea43e (diff)
downloadlibvpx-800ad0b886ce6776712c1835878e500ffd43af64.tar
libvpx-800ad0b886ce6776712c1835878e500ffd43af64.tar.gz
libvpx-800ad0b886ce6776712c1835878e500ffd43af64.tar.bz2
libvpx-800ad0b886ce6776712c1835878e500ffd43af64.zip
Use ref_frame_map vice active_ref_idx on the encoder
This patch makes the encoder's use of ref_frame_map and active_ref_idx consistent with the decoder. ref_frame_map[] maps a reference buffer index to its actual location in the yv12_fb array, since many references may share an underlying buffer. active_ref_idx[] mirrors cpi->{lst,gld,alt}_fb_idx, holding the active references in each slot. This also fixes a bug in setup_buffer_inter() where the incorrect reference was used to populate the scaling factors. Change-Id: Id3728f6d77cffcd27c248903bf51f9c3e594287e
Diffstat (limited to 'vp9/encoder/vp9_firstpass.c')
-rw-r--r--vp9/encoder/vp9_firstpass.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c
index 05a0f6f04..4d0a299e8 100644
--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -436,10 +436,10 @@ void vp9_first_pass(VP9_COMP *cpi) {
int recon_yoffset, recon_uvoffset;
YV12_BUFFER_CONFIG *lst_yv12 =
- &cm->yv12_fb[cm->active_ref_idx[cpi->lst_fb_idx]];
+ &cm->yv12_fb[cm->ref_frame_map[cpi->lst_fb_idx]];
YV12_BUFFER_CONFIG *new_yv12 = &cm->yv12_fb[cm->new_fb_idx];
YV12_BUFFER_CONFIG *gld_yv12 =
- &cm->yv12_fb[cm->active_ref_idx[cpi->gld_fb_idx]];
+ &cm->yv12_fb[cm->ref_frame_map[cpi->gld_fb_idx]];
int recon_y_stride = lst_yv12->y_stride;
int recon_uv_stride = lst_yv12->uv_stride;
int64_t intra_error = 0;