Commit f6255dbb authored by Marco's avatar Marco
Browse files

Bugfix for svc.

Condition usage of rc.frames_since_golden to non-svc mode.

rc.frames_since_golden, which is used in non-svc mode to add second reference,
was causing, under certain condiiton, the turning off of golden reference
for svc case.

Change-Id: Icec644d235d0471e56d8ff73d6c37278bd6ecd3b
parent 16c0ec71
...@@ -3925,7 +3925,9 @@ static void encode_frame_internal(VP9_COMP *cpi) { ...@@ -3925,7 +3925,9 @@ static void encode_frame_internal(VP9_COMP *cpi) {
} }
vp9_zero(x->zcoeff_blk); 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); cpi->ref_frame_flags &= (~VP9_GOLD_FLAG);
if (sf->partition_search_type == SOURCE_VAR_BASED_PARTITION) if (sf->partition_search_type == SOURCE_VAR_BASED_PARTITION)
......
...@@ -1157,12 +1157,11 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, ...@@ -1157,12 +1157,11 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
vp9_denoiser_reset_frame_stats(ctx); vp9_denoiser_reset_frame_stats(ctx);
#endif #endif
if (cpi->rc.frames_since_golden == 0) { if (cpi->rc.frames_since_golden == 0 && !cpi->use_svc) {
usable_ref_frame = LAST_FRAME; usable_ref_frame = LAST_FRAME;
} else { } else {
usable_ref_frame = GOLDEN_FRAME; usable_ref_frame = GOLDEN_FRAME;
} }
for (ref_frame = LAST_FRAME; ref_frame <= usable_ref_frame; ++ref_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); const YV12_BUFFER_CONFIG *yv12 = get_ref_frame_buffer(cpi, ref_frame);
......
...@@ -1339,13 +1339,15 @@ void vp9_rc_postencode_update(VP9_COMP *cpi, uint64_t bytes_used) { ...@@ -1339,13 +1339,15 @@ void vp9_rc_postencode_update(VP9_COMP *cpi, uint64_t bytes_used) {
rc->total_target_vs_actual = rc->total_actual_bits - rc->total_target_bits; rc->total_target_vs_actual = rc->total_actual_bits - rc->total_target_bits;
if (is_altref_enabled(cpi) && cpi->refresh_alt_ref_frame && if (!cpi->use_svc) {
(cm->frame_type != KEY_FRAME)) if (is_altref_enabled(cpi) && cpi->refresh_alt_ref_frame &&
// Update the alternate reference frame stats as appropriate. (cm->frame_type != KEY_FRAME))
update_alt_ref_frame_stats(cpi); // Update the alternate reference frame stats as appropriate.
else update_alt_ref_frame_stats(cpi);
// Update the Golden frame stats as appropriate. else
update_golden_frame_stats(cpi); // Update the Golden frame stats as appropriate.
update_golden_frame_stats(cpi);
}
if (cm->frame_type == KEY_FRAME) if (cm->frame_type == KEY_FRAME)
rc->frames_since_key = 0; rc->frames_since_key = 0;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment