diff options
author | John Koleszar <jkoleszar@google.com> | 2013-02-08 14:20:05 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2013-02-08 14:20:05 -0800 |
commit | 6dfc95fe63a52945350a7c8a234e87a4a55645db (patch) | |
tree | 9eee00f47c23b412ab1c181e71ffb816ac7b92f1 /vp9/encoder/vp9_rdopt.c | |
parent | 3de8ee6ba1db38f14643c10793f57ed5d0b7122f (diff) | |
parent | 393b4856273c06aa0e7f0aec90a2b93a19aaf2d2 (diff) | |
download | libvpx-6dfc95fe63a52945350a7c8a234e87a4a55645db.tar libvpx-6dfc95fe63a52945350a7c8a234e87a4a55645db.tar.gz libvpx-6dfc95fe63a52945350a7c8a234e87a4a55645db.tar.bz2 libvpx-6dfc95fe63a52945350a7c8a234e87a4a55645db.zip |
Merge changes Icd1a2a5a,I204d17a1,I3ed92117 into experimental
* changes:
Initial support for resolution changes on P-frames
Avoid allocating memory when resizing frames
Adds a test for the VP8E_SET_SCALEMODE control
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index c50c55ff9..370374164 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -3517,6 +3517,8 @@ static void rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, int *returnrate, int *returndistortion, int64_t *returnintra) { + static const int flag_list[4] = { 0, VP9_LAST_FLAG, VP9_GOLD_FLAG, + VP9_ALT_FLAG }; VP9_COMMON *cm = &cpi->common; MACROBLOCKD *xd = &x->e_mbd; union b_mode_info best_bmodes[16]; @@ -3684,6 +3686,16 @@ static void rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, if (best_rd <= cpi->rd_threshes[mode_index]) continue; + // Ensure that the references used by this mode are available. + if (mbmi->ref_frame && + !(cpi->ref_frame_flags & flag_list[mbmi->ref_frame])) + continue; + + if (mbmi->second_ref_frame > 0 && + !(cpi->ref_frame_flags & flag_list[mbmi->second_ref_frame])) + continue; + + // current coding mode under rate-distortion optimization test loop #if CONFIG_COMP_INTERINTRA_PRED mbmi->interintra_mode = (MB_PREDICTION_MODE)(DC_PRED - 1); |