summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_firstpass.c
diff options
context:
space:
mode:
authorMinghai Shang <minghai@google.com>2014-08-01 10:26:51 -0700
committerMinghai Shang <minghai@google.com>2014-08-04 15:06:21 -0700
commit5de4368b431cd5571ff2e924da6cf1dd09d16e55 (patch)
treec7b04dd2e789f624c23ae63e0115c5ac7898c791 /vp9/encoder/vp9_firstpass.c
parente589d8ea5c9ffa4571f434fa257ce628274c2548 (diff)
downloadlibvpx-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.c6
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;