Index: source/libvpx/vp9/encoder/vp9_segmentation.c |
diff --git a/source/libvpx/vp9/encoder/vp9_segmentation.c b/source/libvpx/vp9/encoder/vp9_segmentation.c |
index c9874f7c67c8de461418e38c9274e35a4c282460..9b15072e98e403d695eda7b8184f40fd78c42610 100644 |
--- a/source/libvpx/vp9/encoder/vp9_segmentation.c |
+++ b/source/libvpx/vp9/encoder/vp9_segmentation.c |
@@ -36,7 +36,7 @@ void vp9_set_segment_data(struct segmentation *seg, |
unsigned char abs_delta) { |
seg->abs_delta = abs_delta; |
- vpx_memcpy(seg->feature_data, feature_data, sizeof(seg->feature_data)); |
+ memcpy(seg->feature_data, feature_data, sizeof(seg->feature_data)); |
} |
void vp9_disable_segfeature(struct segmentation *seg, int segment_id, |
SEG_LVL_FEATURES feature_id) { |
@@ -107,7 +107,7 @@ static int cost_segmap(int *segcounts, vp9_prob *probs) { |
} |
static void count_segs(const VP9_COMMON *cm, MACROBLOCKD *xd, |
- const TileInfo *tile, MODE_INFO *mi, |
+ const TileInfo *tile, MODE_INFO **mi, |
int *no_pred_segcounts, |
int (*temporal_predictor_count)[2], |
int *t_unpred_seg_counts, |
@@ -118,7 +118,7 @@ static void count_segs(const VP9_COMMON *cm, MACROBLOCKD *xd, |
return; |
xd->mi = mi; |
- segment_id = xd->mi[0].src_mi->mbmi.segment_id; |
+ segment_id = xd->mi[0]->mbmi.segment_id; |
set_mi_row_col(xd, tile, mi_row, bh, mi_col, bw, cm->mi_rows, cm->mi_cols); |
@@ -127,7 +127,7 @@ static void count_segs(const VP9_COMMON *cm, MACROBLOCKD *xd, |
// Temporal prediction not allowed on key frames |
if (cm->frame_type != KEY_FRAME) { |
- const BLOCK_SIZE bsize = xd->mi[0].src_mi->mbmi.sb_type; |
+ const BLOCK_SIZE bsize = xd->mi[0]->mbmi.sb_type; |
// Test to see if the segment id matches the predicted value. |
const int pred_segment_id = vp9_get_segment_id(cm, cm->last_frame_seg_map, |
bsize, mi_row, mi_col); |
@@ -136,7 +136,7 @@ static void count_segs(const VP9_COMMON *cm, MACROBLOCKD *xd, |
// Store the prediction status for this mb and update counts |
// as appropriate |
- xd->mi[0].src_mi->mbmi.seg_id_predicted = pred_flag; |
+ xd->mi[0]->mbmi.seg_id_predicted = pred_flag; |
temporal_predictor_count[pred_context][pred_flag]++; |
// Update the "unpredicted" segment count |
@@ -146,7 +146,7 @@ static void count_segs(const VP9_COMMON *cm, MACROBLOCKD *xd, |
} |
static void count_segs_sb(const VP9_COMMON *cm, MACROBLOCKD *xd, |
- const TileInfo *tile, MODE_INFO *mi, |
+ const TileInfo *tile, MODE_INFO **mi, |
int *no_pred_segcounts, |
int (*temporal_predictor_count)[2], |
int *t_unpred_seg_counts, |
@@ -159,8 +159,8 @@ static void count_segs_sb(const VP9_COMMON *cm, MACROBLOCKD *xd, |
if (mi_row >= cm->mi_rows || mi_col >= cm->mi_cols) |
return; |
- bw = num_8x8_blocks_wide_lookup[mi[0].src_mi->mbmi.sb_type]; |
- bh = num_8x8_blocks_high_lookup[mi[0].src_mi->mbmi.sb_type]; |
+ bw = num_8x8_blocks_wide_lookup[mi[0]->mbmi.sb_type]; |
+ bh = num_8x8_blocks_high_lookup[mi[0]->mbmi.sb_type]; |
if (bw == bs && bh == bs) { |
count_segs(cm, xd, tile, mi, no_pred_segcounts, temporal_predictor_count, |
@@ -213,20 +213,20 @@ void vp9_choose_segmap_coding_method(VP9_COMMON *cm, MACROBLOCKD *xd) { |
// Set default state for the segment tree probabilities and the |
// temporal coding probabilities |
- vpx_memset(seg->tree_probs, 255, sizeof(seg->tree_probs)); |
- vpx_memset(seg->pred_probs, 255, sizeof(seg->pred_probs)); |
+ memset(seg->tree_probs, 255, sizeof(seg->tree_probs)); |
+ memset(seg->pred_probs, 255, sizeof(seg->pred_probs)); |
// First of all generate stats regarding how well the last segment map |
// predicts this one |
for (tile_col = 0; tile_col < 1 << cm->log2_tile_cols; tile_col++) { |
TileInfo tile; |
- MODE_INFO *mi_ptr; |
+ MODE_INFO **mi_ptr; |
vp9_tile_init(&tile, cm, 0, tile_col); |
- mi_ptr = cm->mi + tile.mi_col_start; |
+ mi_ptr = cm->mi_grid_visible + tile.mi_col_start; |
for (mi_row = 0; mi_row < cm->mi_rows; |
mi_row += 8, mi_ptr += 8 * cm->mi_stride) { |
- MODE_INFO *mi = mi_ptr; |
+ MODE_INFO **mi = mi_ptr; |
for (mi_col = tile.mi_col_start; mi_col < tile.mi_col_end; |
mi_col += 8, mi += 8) |
count_segs_sb(cm, xd, &tile, mi, no_pred_segcounts, |
@@ -263,11 +263,11 @@ void vp9_choose_segmap_coding_method(VP9_COMMON *cm, MACROBLOCKD *xd) { |
// Now choose which coding method to use. |
if (t_pred_cost < no_pred_cost) { |
seg->temporal_update = 1; |
- vpx_memcpy(seg->tree_probs, t_pred_tree, sizeof(t_pred_tree)); |
- vpx_memcpy(seg->pred_probs, t_nopred_prob, sizeof(t_nopred_prob)); |
+ memcpy(seg->tree_probs, t_pred_tree, sizeof(t_pred_tree)); |
+ memcpy(seg->pred_probs, t_nopred_prob, sizeof(t_nopred_prob)); |
} else { |
seg->temporal_update = 0; |
- vpx_memcpy(seg->tree_probs, no_pred_tree, sizeof(no_pred_tree)); |
+ memcpy(seg->tree_probs, no_pred_tree, sizeof(no_pred_tree)); |
} |
} |
@@ -276,6 +276,6 @@ void vp9_reset_segment_features(struct segmentation *seg) { |
seg->enabled = 0; |
seg->update_map = 0; |
seg->update_data = 0; |
- vpx_memset(seg->tree_probs, 255, sizeof(seg->tree_probs)); |
+ memset(seg->tree_probs, 255, sizeof(seg->tree_probs)); |
vp9_clearall_segfeatures(seg); |
} |