diff options
author | Minghai Shang <minghai@google.com> | 2014-08-01 10:26:51 -0700 |
---|---|---|
committer | Minghai Shang <minghai@google.com> | 2014-08-04 15:06:21 -0700 |
commit | 5de4368b431cd5571ff2e924da6cf1dd09d16e55 (patch) | |
tree | c7b04dd2e789f624c23ae63e0115c5ac7898c791 /vp9/encoder/vp9_firstpass.c | |
parent | e589d8ea5c9ffa4571f434fa257ce628274c2548 (diff) | |
download | libvpx-5de4368b431cd5571ff2e924da6cf1dd09d16e55.tar libvpx-5de4368b431cd5571ff2e924da6cf1dd09d16e55.tar.gz libvpx-5de4368b431cd5571ff2e924da6cf1dd09d16e55.tar.bz2 libvpx-5de4368b431cd5571ff2e924da6cf1dd09d16e55.zip |
[spatial svc]Enabl golden frame for base layer and fix wrong ref_frame_flag for upper layers in first frame
Change-Id: I1fec9c084b499b2f445b79726066d01b136b59fa
Diffstat (limited to 'vp9/encoder/vp9_firstpass.c')
-rw-r--r-- | vp9/encoder/vp9_firstpass.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c index 1b574758b..1578bf413 100644 --- a/vp9/encoder/vp9_firstpass.c +++ b/vp9/encoder/vp9_firstpass.c @@ -2119,7 +2119,8 @@ void configure_buffer_updates(VP9_COMP *cpi) { assert(0); } if (cpi->use_svc && cpi->svc.number_temporal_layers == 1) { - cpi->refresh_golden_frame = 0; + if (cpi->svc.layer_context[cpi->svc.spatial_layer_id].gold_ref_idx < 0) + cpi->refresh_golden_frame = 0; if (cpi->alt_ref_source == NULL) cpi->refresh_alt_ref_frame = 0; } @@ -2219,6 +2220,9 @@ void vp9_rc_get_second_pass_params(VP9_COMP *cpi) { if (is_spatial_svc) { if (cpi->svc.spatial_layer_id == 0) { lc->is_key_frame = (cm->frame_type == KEY_FRAME); + if (lc->is_key_frame) + cpi->ref_frame_flags &= + (~VP9_LAST_FLAG & ~VP9_GOLD_FLAG & ~VP9_ALT_FLAG); } else { cm->frame_type = INTER_FRAME; lc->is_key_frame = cpi->svc.layer_context[0].is_key_frame; |