summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinghai Shang <minghai@google.com>2015-05-26 17:50:42 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-05-26 17:50:45 +0000
commit9ae5fb706ebb0a29fb7b887fcbacb0d294a5751a (patch)
treea5e4cd64c32bfb4d364c59e2dce522b83fd8c19d
parent55ef1ae9e738e683dbb9a0b717e9deb4b3994625 (diff)
parente2c6a633fb5a6c12befe6e9a07030c898bb7ad6e (diff)
downloadlibvpx-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.c30
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;
}
}