summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorjackychen <jackychen@google.com>2016-07-13 15:58:11 -0700
committerJackyChen <jackychen@google.com>2016-07-25 15:11:43 -0700
commit8ce67d714a6f1be586dcdd26524756d113b203f5 (patch)
treeb8d40f8b040459f1103cf26c9f54da0c9f100bdc /vp9/encoder
parent82070ae9393b1e79559d81fcf1aa89c2e4aa58ee (diff)
downloadlibvpx-8ce67d714a6f1be586dcdd26524756d113b203f5.tar
libvpx-8ce67d714a6f1be586dcdd26524756d113b203f5.tar.gz
libvpx-8ce67d714a6f1be586dcdd26524756d113b203f5.tar.bz2
libvpx-8ce67d714a6f1be586dcdd26524756d113b203f5.zip
vp9 svc: Enable different speed setting for each spatial layer.
This change only affects 1 pass cbr svc mode. Change-Id: If0da87bb200f7e7762755340c40c8157cc7a16ca
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_svc_layercontext.c7
-rw-r--r--vp9/encoder/vp9_svc_layercontext.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_svc_layercontext.c b/vp9/encoder/vp9_svc_layercontext.c
index 824146fe7..a9a06a423 100644
--- a/vp9/encoder/vp9_svc_layercontext.c
+++ b/vp9/encoder/vp9_svc_layercontext.c
@@ -135,7 +135,7 @@ void vp9_init_layer_context(VP9_COMP *const cpi) {
CHECK_MEM_ERROR(cm, lc->consec_zero_mv,
vpx_malloc(consec_zero_mv_size));
memset(lc->consec_zero_mv, 0, consec_zero_mv_size);
- }
+ }
}
}
@@ -293,6 +293,11 @@ void vp9_restore_layer_context(VP9_COMP *const cpi) {
cpi->twopass = lc->twopass;
cpi->oxcf.target_bandwidth = lc->target_bandwidth;
cpi->alt_ref_source = lc->alt_ref_source;
+ // Check if it is one_pass_cbr_svc mode and lc->speed > 0 (real-time mode
+ // does not use speed = 0).
+ if (is_one_pass_cbr_svc(cpi) && lc->speed > 0) {
+ cpi->oxcf.speed = lc->speed;
+ }
// Reset the frames_since_key and frames_to_key counters to their values
// before the layer restore. Keep these defined for the stream (not layer).
if (cpi->svc.number_temporal_layers > 1 ||
diff --git a/vp9/encoder/vp9_svc_layercontext.h b/vp9/encoder/vp9_svc_layercontext.h
index 39094fe02..0fdeb06ca 100644
--- a/vp9/encoder/vp9_svc_layercontext.h
+++ b/vp9/encoder/vp9_svc_layercontext.h
@@ -46,6 +46,7 @@ typedef struct {
signed char *map;
uint8_t *last_coded_q_map;
uint8_t *consec_zero_mv;
+ uint8_t speed;
} LAYER_CONTEXT;
typedef struct {