summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2018-03-28 16:23:26 -0700
committerJerome Jiang <jianj@google.com>2018-03-29 10:49:06 -0700
commit70b86af22e0b99c7bbfefa99646bada0a22b77cc (patch)
tree9317f9b1134bdd107daaf50b3ff2e31b6bbf22ca /vp9
parent382afcab988bad359b8fa4892aae1f11b5200b74 (diff)
downloadlibvpx-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.c8
-rw-r--r--vp9/encoder/vp9_ratectrl.c8
-rw-r--r--vp9/encoder/vp9_svc_layercontext.c2
-rw-r--r--vp9/encoder/vp9_svc_layercontext.h2
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;