summaryrefslogtreecommitdiff
path: root/vp10/encoder
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2015-09-25 20:32:14 -0400
committerRonald S. Bultje <rsbultje@gmail.com>2015-09-25 20:32:14 -0400
commit8979e9e387f0308c7cf23929e510f147db652a43 (patch)
tree1461d5b2e8ddeff34e22c79dcfdf2b6e2a83a430 /vp10/encoder
parent034c28b0a415e6289f66157766a022f056bca2f1 (diff)
downloadlibvpx-8979e9e387f0308c7cf23929e510f147db652a43.tar
libvpx-8979e9e387f0308c7cf23929e510f147db652a43.tar.gz
libvpx-8979e9e387f0308c7cf23929e510f147db652a43.tar.bz2
libvpx-8979e9e387f0308c7cf23929e510f147db652a43.zip
vp10: code reference_mode in uncompressed header.
See issue 1041 point 2. Change-Id: I6fc6427b1a0edff828e39d43428e3271491f8ac5
Diffstat (limited to 'vp10/encoder')
-rw-r--r--vp10/encoder/bitstream.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/vp10/encoder/bitstream.c b/vp10/encoder/bitstream.c
index da515990f..31ff9f7ab 100644
--- a/vp10/encoder/bitstream.c
+++ b/vp10/encoder/bitstream.c
@@ -1169,6 +1169,14 @@ static void write_uncompressed_header(VP10_COMP *cpi,
cm->tx_mode = TX_4X4;
else
write_txfm_mode(cm->tx_mode, wb);
+ if (cpi->allow_comp_inter_inter) {
+ const int use_hybrid_pred = cm->reference_mode == REFERENCE_MODE_SELECT;
+ const int use_compound_pred = cm->reference_mode != SINGLE_REFERENCE;
+
+ vpx_wb_write_bit(wb, use_hybrid_pred);
+ if (!use_hybrid_pred)
+ vpx_wb_write_bit(wb, use_compound_pred);
+ }
#endif
write_tile_info(cm, wb);
@@ -1208,8 +1216,9 @@ static size_t write_compressed_header(VP10_COMP *cpi, uint8_t *data) {
counts->intra_inter[i]);
if (cpi->allow_comp_inter_inter) {
- const int use_compound_pred = cm->reference_mode != SINGLE_REFERENCE;
const int use_hybrid_pred = cm->reference_mode == REFERENCE_MODE_SELECT;
+#if !CONFIG_MISC_FIXES
+ const int use_compound_pred = cm->reference_mode != SINGLE_REFERENCE;
vpx_write_bit(&header_bc, use_compound_pred);
if (use_compound_pred) {
@@ -1219,6 +1228,12 @@ static size_t write_compressed_header(VP10_COMP *cpi, uint8_t *data) {
vp10_cond_prob_diff_update(&header_bc, &fc->comp_inter_prob[i],
counts->comp_inter[i]);
}
+#else
+ if (use_hybrid_pred)
+ for (i = 0; i < COMP_INTER_CONTEXTS; i++)
+ vp10_cond_prob_diff_update(&header_bc, &fc->comp_inter_prob[i],
+ counts->comp_inter[i]);
+#endif
}
if (cm->reference_mode != COMPOUND_REFERENCE) {