summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2014-01-17 10:22:59 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-01-17 10:22:59 -0800
commit2bfafefb344b0358fd9ef4db40644963b4f92f50 (patch)
treeb8a248f5b30816809bb70ea73c11bcd355783970
parentd2bb0c51d397019e22bc920ac36ae3d09924c87d (diff)
parent2b3891d9daf9194bbf62dc246882e3ea9c5c4768 (diff)
downloadlibvpx-2bfafefb344b0358fd9ef4db40644963b4f92f50.tar
libvpx-2bfafefb344b0358fd9ef4db40644963b4f92f50.tar.gz
libvpx-2bfafefb344b0358fd9ef4db40644963b4f92f50.tar.bz2
libvpx-2bfafefb344b0358fd9ef4db40644963b4f92f50.zip
Merge "Fix key frames for one pass."
-rw-r--r--vp9/encoder/vp9_firstpass.c6
-rw-r--r--vp9/encoder/vp9_ratectrl.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c
index 538599d58..0a5af18cb 100644
--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -1965,7 +1965,10 @@ void vp9_get_one_pass_params(VP9_COMP *cpi) {
cpi->rc.frames_to_key == 0 ||
(cpi->oxcf.auto_key && test_for_kf_one_pass(cpi)))) {
cm->frame_type = KEY_FRAME;
+ cpi->rc.this_key_frame_forced = cm->current_video_frame != 0 &&
+ cpi->rc.frames_to_key == 0;
cpi->rc.frames_to_key = cpi->key_frame_frequency;
+ cpi->rc.kf_boost = 300;
} else {
cm->frame_type = INTER_FRAME;
}
@@ -1982,7 +1985,10 @@ void vp9_get_one_pass_cbr_params(VP9_COMP *cpi) {
cpi->rc.frames_to_key == 0 ||
(cpi->oxcf.auto_key && test_for_kf_one_pass(cpi)))) {
cm->frame_type = KEY_FRAME;
+ cpi->rc.this_key_frame_forced = cm->current_video_frame != 0 &&
+ cpi->rc.frames_to_key == 0;
cpi->rc.frames_to_key = cpi->key_frame_frequency;
+ cpi->rc.kf_boost = 300;
} else {
cm->frame_type = INTER_FRAME;
}
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c
index 72ab00f98..4d2d43a11 100644
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -602,7 +602,7 @@ int vp9_rc_pick_q_and_adjust_q_bounds(const VP9_COMP *cpi,
(last_boosted_q * 0.75));
active_best_quality = MAX(qindex + delta_qindex, rc->best_quality);
} else if (!(cpi->pass == 0 && cm->current_video_frame == 0)) {
- // not first frame of one pass
+ // not first frame of one pass and kf_boost is set
double q_adj_factor = 1.0;
double q_val;