diff options
Diffstat (limited to 'vp10/encoder/bitstream.c')
-rw-r--r-- | vp10/encoder/bitstream.c | 17 |
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) { |