ref: f1ecf63f687d3bb3357357ae7f6df329f7fc861b
parent: 23591322cfe8f9e88d150ff737e0773293012f32
parent: f6255dbb530d5a07851501851a4cea4ca563030a
author: Marco Paniconi <[email protected]>
date: Wed Aug 5 17:53:19 EDT 2015
Merge "Bugfix for svc."
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -3925,7 +3925,9 @@
}
vp9_zero(x->zcoeff_blk);
- if (cm->frame_type != KEY_FRAME && cpi->rc.frames_since_golden == 0)
+ if (cm->frame_type != KEY_FRAME &&
+ cpi->rc.frames_since_golden == 0 &&
+ !cpi->use_svc)
cpi->ref_frame_flags &= (~VP9_GOLD_FLAG);
if (sf->partition_search_type == SOURCE_VAR_BASED_PARTITION)
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -1157,12 +1157,11 @@
vp9_denoiser_reset_frame_stats(ctx);
#endif
- if (cpi->rc.frames_since_golden == 0) {
+ if (cpi->rc.frames_since_golden == 0 && !cpi->use_svc) {
usable_ref_frame = LAST_FRAME;
} else {
usable_ref_frame = GOLDEN_FRAME;
}
-
for (ref_frame = LAST_FRAME; ref_frame <= usable_ref_frame; ++ref_frame) {
const YV12_BUFFER_CONFIG *yv12 = get_ref_frame_buffer(cpi, ref_frame);
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -1339,13 +1339,15 @@
rc->total_target_vs_actual = rc->total_actual_bits - rc->total_target_bits;
- if (is_altref_enabled(cpi) && cpi->refresh_alt_ref_frame &&
- (cm->frame_type != KEY_FRAME))
- // Update the alternate reference frame stats as appropriate.
- update_alt_ref_frame_stats(cpi);
- else
- // Update the Golden frame stats as appropriate.
- update_golden_frame_stats(cpi);
+ if (!cpi->use_svc) {
+ if (is_altref_enabled(cpi) && cpi->refresh_alt_ref_frame &&
+ (cm->frame_type != KEY_FRAME))
+ // Update the alternate reference frame stats as appropriate.
+ update_alt_ref_frame_stats(cpi);
+ else
+ // Update the Golden frame stats as appropriate.
+ update_golden_frame_stats(cpi);
+ }
if (cm->frame_type == KEY_FRAME)
rc->frames_since_key = 0;