summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_bitstream.c
diff options
context:
space:
mode:
authorMinghai Shang <minghai@google.com>2014-08-25 14:29:49 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-08-25 14:29:49 -0700
commit42ad07a138d0c0345c08101673f5ad473af48d99 (patch)
tree0d958004d9d1bc29b276a8d9960646dc27e8b97f /vp9/encoder/vp9_bitstream.c
parent48d36e9cac21ce2b4c08621b6cab2a4163eddc03 (diff)
parentd4a407c051a1aa85214e7b96c1ad1e0ba41c6e9e (diff)
downloadlibvpx-42ad07a138d0c0345c08101673f5ad473af48d99.tar
libvpx-42ad07a138d0c0345c08101673f5ad473af48d99.tar.gz
libvpx-42ad07a138d0c0345c08101673f5ad473af48d99.tar.bz2
libvpx-42ad07a138d0c0345c08101673f5ad473af48d99.zip
Merge "[spatial svc]Multiple frame context feature"
Diffstat (limited to 'vp9/encoder/vp9_bitstream.c')
-rw-r--r--vp9/encoder/vp9_bitstream.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c
index bdb133882..8ca05c1c0 100644
--- a/vp9/encoder/vp9_bitstream.c
+++ b/vp9/encoder/vp9_bitstream.c
@@ -1083,7 +1083,16 @@ static void write_uncompressed_header(VP9_COMP *cpi,
write_bitdepth_colorspace_sampling(cm, wb);
write_frame_size(cm, wb);
} else {
- if (!cm->show_frame)
+ // In spatial svc if it's not error_resilient_mode then we need to code all
+ // visible frames as invisible. But we need to keep the show_frame flag so
+ // that the publisher could know whether it is supposed to be visible.
+ // So we will code the show_frame flag as it is. Then code the intra_only
+ // bit here. This will make the bitstream incompatible. In the player we
+ // will change to show_frame flag to 0, then add an one byte frame with
+ // show_existing_frame flag which tells the decoder which frame we want to
+ // show.
+ if (!cm->show_frame ||
+ (is_spatial_svc(cpi) && cm->error_resilient_mode == 0))
vp9_wb_write_bit(wb, cm->intra_only);
if (!cm->error_resilient_mode)