summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2018-06-11 16:43:44 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-06-11 16:43:44 +0000
commit8d49d02a24e40fe9eb8a2ce2820987a9d8d1c0e6 (patch)
treeb84890132693a4fcfaf4a20d2a56e4853b02f745
parent3ac2b57015000dde5731ceb9fc824e86747c5945 (diff)
parent5f8e24161e4c5c565e6135a51232d95ccdd3dfd9 (diff)
downloadlibvpx-8d49d02a24e40fe9eb8a2ce2820987a9d8d1c0e6.tar
libvpx-8d49d02a24e40fe9eb8a2ce2820987a9d8d1c0e6.tar.gz
libvpx-8d49d02a24e40fe9eb8a2ce2820987a9d8d1c0e6.tar.bz2
libvpx-8d49d02a24e40fe9eb8a2ce2820987a9d8d1c0e6.zip
Merge "vp9 svc: clean up first_spatial_layer_to_encode."
-rw-r--r--vp9/encoder/vp9_encoder.c4
-rw-r--r--vp9/encoder/vp9_ratectrl.c10
-rw-r--r--vp9/encoder/vp9_svc_layercontext.c1
-rw-r--r--vp9/encoder/vp9_svc_layercontext.h1
-rw-r--r--vp9/vp9_cx_iface.c6
5 files changed, 7 insertions, 15 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index a1c48e28e..db6757cac 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -5345,8 +5345,8 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
cm->intra_only = 0;
// if the flags indicate intra frame, but if the current picture is for
// non-zero spatial layer, it should not be an intra picture.
- if ((source->flags & VPX_EFLAG_FORCE_KF) &&
- cpi->svc.spatial_layer_id > cpi->svc.first_spatial_layer_to_encode) {
+ if ((source->flags & VPX_EFLAG_FORCE_KF) && cpi->use_svc &&
+ cpi->svc.spatial_layer_id > 0) {
source->flags &= ~(unsigned int)(VPX_EFLAG_FORCE_KF);
}
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c
index 452e4d3cd..d65eff451 100644
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -1863,12 +1863,10 @@ void vp9_rc_get_svc_params(VP9_COMP *cpi) {
cm->frame_type = INTER_FRAME;
if (is_one_pass_cbr_svc(cpi)) {
LAYER_CONTEXT *lc = &svc->layer_context[layer];
- if (svc->spatial_layer_id == svc->first_spatial_layer_to_encode) {
- lc->is_key_frame = 0;
- } else {
- lc->is_key_frame =
- svc->layer_context[svc->temporal_layer_id].is_key_frame;
- }
+ lc->is_key_frame =
+ svc->spatial_layer_id == 0
+ ? 0
+ : svc->layer_context[svc->temporal_layer_id].is_key_frame;
target = calc_pframe_target_size_one_pass_cbr(cpi);
}
}
diff --git a/vp9/encoder/vp9_svc_layercontext.c b/vp9/encoder/vp9_svc_layercontext.c
index c35ed8454..1e6f0fd62 100644
--- a/vp9/encoder/vp9_svc_layercontext.c
+++ b/vp9/encoder/vp9_svc_layercontext.c
@@ -29,7 +29,6 @@ void vp9_init_layer_context(VP9_COMP *const cpi) {
svc->spatial_layer_id = 0;
svc->temporal_layer_id = 0;
- svc->first_spatial_layer_to_encode = 0;
svc->force_zero_mode_spatial_ref = 0;
svc->use_base_mv = 0;
svc->use_partition_reuse = 0;
diff --git a/vp9/encoder/vp9_svc_layercontext.h b/vp9/encoder/vp9_svc_layercontext.h
index 6cebb6af3..1fd3f42b1 100644
--- a/vp9/encoder/vp9_svc_layercontext.h
+++ b/vp9/encoder/vp9_svc_layercontext.h
@@ -74,7 +74,6 @@ typedef struct SVC {
int number_temporal_layers;
int spatial_layer_to_encode;
- int first_spatial_layer_to_encode;
// Workaround for multiple frame contexts
enum { ENCODED = 0, ENCODING, NEED_TO_ENCODE } encode_empty_frame_state;
diff --git a/vp9/vp9_cx_iface.c b/vp9/vp9_cx_iface.c
index d926f1a8e..0f0f6066f 100644
--- a/vp9/vp9_cx_iface.c
+++ b/vp9/vp9_cx_iface.c
@@ -1438,7 +1438,6 @@ static vpx_codec_err_t ctrl_set_svc_layer_id(vpx_codec_alg_priv_t *ctx,
VP9_COMP *const cpi = (VP9_COMP *)ctx->cpi;
SVC *const svc = &cpi->svc;
- svc->first_spatial_layer_to_encode = data->spatial_layer_id;
svc->spatial_layer_to_encode = data->spatial_layer_id;
svc->temporal_layer_id = data->temporal_layer_id;
// Checks on valid layer_id input.
@@ -1446,10 +1445,7 @@ static vpx_codec_err_t ctrl_set_svc_layer_id(vpx_codec_alg_priv_t *ctx,
svc->temporal_layer_id >= (int)ctx->cfg.ts_number_layers) {
return VPX_CODEC_INVALID_PARAM;
}
- if (svc->first_spatial_layer_to_encode < 0 ||
- svc->first_spatial_layer_to_encode >= (int)ctx->cfg.ss_number_layers) {
- return VPX_CODEC_INVALID_PARAM;
- }
+
return VPX_CODEC_OK;
}