diff options
author | Minghai Shang <minghai@google.com> | 2015-05-26 17:50:42 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-05-26 17:50:45 +0000 |
commit | 9ae5fb706ebb0a29fb7b887fcbacb0d294a5751a (patch) | |
tree | a5e4cd64c32bfb4d364c59e2dce522b83fd8c19d | |
parent | 55ef1ae9e738e683dbb9a0b717e9deb4b3994625 (diff) | |
parent | e2c6a633fb5a6c12befe6e9a07030c898bb7ad6e (diff) | |
download | libvpx-9ae5fb706ebb0a29fb7b887fcbacb0d294a5751a.tar libvpx-9ae5fb706ebb0a29fb7b887fcbacb0d294a5751a.tar.gz libvpx-9ae5fb706ebb0a29fb7b887fcbacb0d294a5751a.tar.bz2 libvpx-9ae5fb706ebb0a29fb7b887fcbacb0d294a5751a.zip |
Merge "[svc] Turn on frame_parallel_decoding_mode"
-rw-r--r-- | vp9/encoder/vp9_encoder.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 0add45ec5..fd47fecdb 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -3482,28 +3482,28 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, 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; + // The probs will be updated based on the frame type of its previous // frame if frame_parallel_decoding_mode is 0. The type may vary for // the frame after a key frame in base layer since we may drop enhancement // layers. So set frame_parallel_decoding_mode to 1 in this case. - if (cpi->svc.number_temporal_layers == 1) { - if (cpi->svc.spatial_layer_id == 0 && - cpi->svc.layer_context[0].last_frame_type == KEY_FRAME) - cm->frame_parallel_decoding_mode = 1; - else - cm->frame_parallel_decoding_mode = 0; - } else if (cpi->svc.spatial_layer_id == 0) { - // Find the 2nd frame in temporal base layer and 1st frame in temporal - // enhancement layers from the key frame. - int i; - for (i = 0; i < cpi->svc.number_temporal_layers; ++i) { - if (cpi->svc.layer_context[0].frames_from_key_frame == 1 << i) { + if (cm->frame_parallel_decoding_mode == 0) { + if (cpi->svc.number_temporal_layers == 1) { + if (cpi->svc.spatial_layer_id == 0 && + cpi->svc.layer_context[0].last_frame_type == KEY_FRAME) cm->frame_parallel_decoding_mode = 1; - break; + } else if (cpi->svc.spatial_layer_id == 0) { + // Find the 2nd frame in temporal base layer and 1st frame in temporal + // enhancement layers from the key frame. + int i; + for (i = 0; i < cpi->svc.number_temporal_layers; ++i) { + if (cpi->svc.layer_context[0].frames_from_key_frame == 1 << i) { + cm->frame_parallel_decoding_mode = 1; + break; + } } } - if (i == cpi->svc.number_temporal_layers) - cm->frame_parallel_decoding_mode = 0; } } |