Index: source/libvpx/vp9/encoder/vp9_bitstream.c |
diff --git a/source/libvpx/vp9/encoder/vp9_bitstream.c b/source/libvpx/vp9/encoder/vp9_bitstream.c |
index b24fe2950a1eeef07e0de65d29c00d972543f0c1..d20e067669ff445f5f4494fde8d8344e104b17b0 100644 |
--- a/source/libvpx/vp9/encoder/vp9_bitstream.c |
+++ b/source/libvpx/vp9/encoder/vp9_bitstream.c |
@@ -78,8 +78,8 @@ static void prob_diff_update(const vp9_tree_index *tree, |
static void write_selected_tx_size(const VP9_COMMON *cm, |
const MACROBLOCKD *xd, vp9_writer *w) { |
- TX_SIZE tx_size = xd->mi[0].src_mi->mbmi.tx_size; |
- BLOCK_SIZE bsize = xd->mi[0].src_mi->mbmi.sb_type; |
+ TX_SIZE tx_size = xd->mi[0]->mbmi.tx_size; |
+ BLOCK_SIZE bsize = xd->mi[0]->mbmi.sb_type; |
const TX_SIZE max_tx_size = max_txsize_lookup[bsize]; |
const vp9_prob *const tx_probs = get_tx_probs2(max_tx_size, xd, |
&cm->fc->tx_probs); |
@@ -201,7 +201,7 @@ static void write_segment_id(vp9_writer *w, const struct segmentation *seg, |
// This function encodes the reference frame |
static void write_ref_frames(const VP9_COMMON *cm, const MACROBLOCKD *xd, |
vp9_writer *w) { |
- const MB_MODE_INFO *const mbmi = &xd->mi[0].src_mi->mbmi; |
+ const MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi; |
const int is_compound = has_second_ref(mbmi); |
const int segment_id = mbmi->segment_id; |
@@ -268,8 +268,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, const MODE_INFO *mi, |
vp9_write(w, is_inter, vp9_get_intra_inter_prob(cm, xd)); |
if (bsize >= BLOCK_8X8 && cm->tx_mode == TX_MODE_SELECT && |
- !(is_inter && |
- (skip || vp9_segfeature_active(seg, segment_id, SEG_LVL_SKIP)))) { |
+ !(is_inter && skip)) { |
write_selected_tx_size(cm, xd, w); |
} |
@@ -339,9 +338,9 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, const MODE_INFO *mi, |
} |
static void write_mb_modes_kf(const VP9_COMMON *cm, const MACROBLOCKD *xd, |
- MODE_INFO *mi_8x8, vp9_writer *w) { |
+ MODE_INFO **mi_8x8, vp9_writer *w) { |
const struct segmentation *const seg = &cm->seg; |
- const MODE_INFO *const mi = mi_8x8; |
+ const MODE_INFO *const mi = mi_8x8[0]; |
const MODE_INFO *const above_mi = xd->above_mi; |
const MODE_INFO *const left_mi = xd->left_mi; |
const MB_MODE_INFO *const mbmi = &mi->mbmi; |
@@ -382,8 +381,8 @@ static void write_modes_b(VP9_COMP *cpi, const TileInfo *const tile, |
MACROBLOCKD *const xd = &cpi->td.mb.e_mbd; |
MODE_INFO *m; |
- xd->mi = cm->mi + (mi_row * cm->mi_stride + mi_col); |
- m = xd->mi; |
+ xd->mi = cm->mi_grid_visible + (mi_row * cm->mi_stride + mi_col); |
+ m = xd->mi[0]; |
set_mi_row_col(xd, tile, |
mi_row, num_8x8_blocks_high_lookup[m->mbmi.sb_type], |
@@ -437,7 +436,7 @@ static void write_modes_sb(VP9_COMP *cpi, |
if (mi_row >= cm->mi_rows || mi_col >= cm->mi_cols) |
return; |
- m = cm->mi[mi_row * cm->mi_stride + mi_col].src_mi; |
+ m = cm->mi_grid_visible[mi_row * cm->mi_stride + mi_col]; |
partition = partition_lookup[bsl][m->mbmi.sb_type]; |
write_partition(cm, xd, bs, mi_row, mi_col, partition, bsize, w); |
@@ -929,8 +928,8 @@ static size_t encode_tiles(VP9_COMP *cpi, uint8_t *data_ptr) { |
const int tile_cols = 1 << cm->log2_tile_cols; |
const int tile_rows = 1 << cm->log2_tile_rows; |
- vpx_memset(cm->above_seg_context, 0, sizeof(*cm->above_seg_context) * |
- mi_cols_aligned_to_sb(cm->mi_cols)); |
+ memset(cm->above_seg_context, 0, |
+ sizeof(*cm->above_seg_context) * mi_cols_aligned_to_sb(cm->mi_cols)); |
for (tile_row = 0; tile_row < tile_rows; tile_row++) { |
for (tile_col = 0; tile_col < tile_cols; tile_col++) { |