diff options
author | Minghai Shang <minghai@google.com> | 2015-05-27 17:48:59 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-05-27 17:49:00 +0000 |
commit | 30181c46d871452f960fb0dadfe4088df51b77e5 (patch) | |
tree | a90b2f0966f5750dcc0fdfe518413e694513c773 /vp9/encoder/vp9_encoder.c | |
parent | dee70d355fc6a2aeb3ede8062c58cd2bc7d71e75 (diff) | |
parent | 15353216c5b345e9df8500ce4f8fbba659a7f131 (diff) | |
download | libvpx-30181c46d871452f960fb0dadfe4088df51b77e5.tar libvpx-30181c46d871452f960fb0dadfe4088df51b77e5.tar.gz libvpx-30181c46d871452f960fb0dadfe4088df51b77e5.tar.bz2 libvpx-30181c46d871452f960fb0dadfe4088df51b77e5.zip |
Merge "[svc] Make size of empty frame to be 16x16 all the time"
Diffstat (limited to 'vp9/encoder/vp9_encoder.c')
-rw-r--r-- | vp9/encoder/vp9_encoder.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index db79eb514..91624182d 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -3476,11 +3476,18 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, } } if (is_two_pass_svc(cpi) && cm->error_resilient_mode == 0) { - // Use the last frame context for the empty frame. + // Use context 0 for intra only empty frame, but the last frame context + // for other empty frames. + if (cpi->svc.encode_empty_frame_state == ENCODING) { + if (cpi->svc.encode_intra_empty_frame != 0) + cm->frame_context_idx = 0; + else + cm->frame_context_idx = FRAME_CONTEXTS - 1; + } else { cm->frame_context_idx = - (cpi->svc.encode_empty_frame_state == ENCODING) ? FRAME_CONTEXTS - 1 : cpi->svc.spatial_layer_id * cpi->svc.number_temporal_layers + cpi->svc.temporal_layer_id; + } cm->frame_parallel_decoding_mode = oxcf->frame_parallel_decoding_mode; @@ -3968,6 +3975,7 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, } cm->show_frame = 0; + cm->intra_only = 0; cpi->refresh_alt_ref_frame = 1; cpi->refresh_golden_frame = 0; cpi->refresh_last_frame = 0; @@ -4310,8 +4318,10 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, #endif if (is_two_pass_svc(cpi)) { - if (cpi->svc.encode_empty_frame_state == ENCODING) + if (cpi->svc.encode_empty_frame_state == ENCODING) { cpi->svc.encode_empty_frame_state = ENCODED; + cpi->svc.encode_intra_empty_frame = 0; + } if (cm->show_frame) { ++cpi->svc.spatial_layer_to_encode; |