diff options
author | Jerome Jiang <jianj@google.com> | 2018-03-28 16:23:26 -0700 |
---|---|---|
committer | Jerome Jiang <jianj@google.com> | 2018-03-29 10:49:06 -0700 |
commit | 70b86af22e0b99c7bbfefa99646bada0a22b77cc (patch) | |
tree | 9317f9b1134bdd107daaf50b3ff2e31b6bbf22ca /vp9 | |
parent | 382afcab988bad359b8fa4892aae1f11b5200b74 (diff) | |
download | libvpx-70b86af22e0b99c7bbfefa99646bada0a22b77cc.tar libvpx-70b86af22e0b99c7bbfefa99646bada0a22b77cc.tar.gz libvpx-70b86af22e0b99c7bbfefa99646bada0a22b77cc.tar.bz2 libvpx-70b86af22e0b99c7bbfefa99646bada0a22b77cc.zip |
VP9 SVC: Add enum type for framedrop_mode.
Change-Id: I3d4697b00729553e0860762b9264e29b8a89b9d4
Diffstat (limited to 'vp9')
-rw-r--r-- | vp9/encoder/vp9_encoder.c | 8 | ||||
-rw-r--r-- | vp9/encoder/vp9_ratectrl.c | 8 | ||||
-rw-r--r-- | vp9/encoder/vp9_svc_layercontext.c | 2 | ||||
-rw-r--r-- | vp9/encoder/vp9_svc_layercontext.h | 2 |
4 files changed, 11 insertions, 9 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 36cd480e6..aa9c3bf46 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -4624,12 +4624,14 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, size_t *size, (!cpi->use_svc || !cpi->svc.layer_context[cpi->svc.temporal_layer_id].is_key_frame)) { int svc_prev_layer_dropped = 0; - // In the contrained framedrop mode for svc (framedrop_mode = 1), if the - // previous spatial layer was dropped, drop the current spatial layer. + // In the contrained framedrop mode for svc (framedrop_mode = + // CONSTRAINED_LAYER_DROP), if the previous spatial layer was dropped, drop + // the current spatial layer. if (cpi->use_svc && cpi->svc.spatial_layer_id > 0 && cpi->svc.drop_spatial_layer[cpi->svc.spatial_layer_id - 1]) svc_prev_layer_dropped = 1; - if ((svc_prev_layer_dropped && cpi->svc.framedrop_mode) || + if ((svc_prev_layer_dropped && + cpi->svc.framedrop_mode == CONSTRAINED_LAYER_DROP) || vp9_rc_drop_frame(cpi)) { vp9_rc_postencode_update_drop_frame(cpi); cpi->ext_refresh_frame_flags_pending = 0; diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index d6d5db47e..b5f1a5c5c 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -395,14 +395,14 @@ void vp9_rc_init(const VP9EncoderConfig *oxcf, int pass, RATE_CONTROL *rc) { static int check_buffer(VP9_COMP *cpi, int drop_mark) { SVC *svc = &cpi->svc; - if (!cpi->use_svc || !cpi->svc.framedrop_mode) { + if (!cpi->use_svc || cpi->svc.framedrop_mode == LAYER_DROP) { RATE_CONTROL *const rc = &cpi->rc; return (rc->buffer_level <= drop_mark); } else { int i; - // For SVC in the constrained framedrop mode (svc->framedrop_mode = 1): - // the condition on buffer (to drop frame) is checked on current and - // upper spatial layers. + // For SVC in the constrained framedrop mode (svc->framedrop_mode = + // CONSTRAINED_LAYER_DROP): the condition on buffer (to drop frame) is + // checked on current and upper spatial layers. for (i = svc->spatial_layer_id; i < svc->number_spatial_layers; ++i) { const int layer = LAYER_IDS_TO_IDX(i, svc->temporal_layer_id, svc->number_temporal_layers); diff --git a/vp9/encoder/vp9_svc_layercontext.c b/vp9/encoder/vp9_svc_layercontext.c index 1d36999b4..531a5d4bc 100644 --- a/vp9/encoder/vp9_svc_layercontext.c +++ b/vp9/encoder/vp9_svc_layercontext.c @@ -39,7 +39,7 @@ void vp9_init_layer_context(VP9_COMP *const cpi) { svc->non_reference_frame = 0; svc->skip_enhancement_layer = 0; svc->disable_inter_layer_pred = INTER_LAYER_PRED_ON; - svc->framedrop_mode = 0; + svc->framedrop_mode = LAYER_DROP; for (i = 0; i < REF_FRAMES; ++i) svc->ref_frame_index[i] = -1; for (sl = 0; sl < oxcf->ss_number_layers; ++sl) { diff --git a/vp9/encoder/vp9_svc_layercontext.h b/vp9/encoder/vp9_svc_layercontext.h index 841b9b30c..a7fa26924 100644 --- a/vp9/encoder/vp9_svc_layercontext.h +++ b/vp9/encoder/vp9_svc_layercontext.h @@ -115,7 +115,7 @@ typedef struct SVC { int last_layer_dropped[VPX_MAX_LAYERS]; int drop_spatial_layer[VPX_MAX_LAYERS]; int framedrop_thresh[VPX_MAX_LAYERS]; - int framedrop_mode; + SVC_LAYER_DROP_MODE framedrop_mode; INTER_LAYER_PRED disable_inter_layer_pred; } SVC; |