summaryrefslogtreecommitdiff
path: root/vp10/decoder/decodeframe.c
diff options
context:
space:
mode:
authorHui Su <huisu@google.com>2015-10-13 17:34:27 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-10-13 17:34:27 +0000
commitb9e31b51639b9a903d311a2892bbecd0e77e80aa (patch)
treee9b651ff296593576737b6141cf0057994d7dc52 /vp10/decoder/decodeframe.c
parent00170953b1b9920a92717097b3606281b5fe3f08 (diff)
parent5d011cb2785016de7f1cbf9a284cdd768a8a6229 (diff)
downloadlibvpx-b9e31b51639b9a903d311a2892bbecd0e77e80aa.tar
libvpx-b9e31b51639b9a903d311a2892bbecd0e77e80aa.tar.gz
libvpx-b9e31b51639b9a903d311a2892bbecd0e77e80aa.tar.bz2
libvpx-b9e31b51639b9a903d311a2892bbecd0e77e80aa.zip
Merge "VP10: Add palette mode part 1"
Diffstat (limited to 'vp10/decoder/decodeframe.c')
-rw-r--r--vp10/decoder/decodeframe.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/vp10/decoder/decodeframe.c b/vp10/decoder/decodeframe.c
index b4c75ea7d..2516ba075 100644
--- a/vp10/decoder/decodeframe.c
+++ b/vp10/decoder/decodeframe.c
@@ -847,6 +847,9 @@ static void decode_block(VP10Decoder *const pbi, MACROBLOCKD *const xd,
const int max_blocks_high = num_4x4_h + (xd->mb_to_bottom_edge >= 0 ?
0 : xd->mb_to_bottom_edge >> (5 + pd->subsampling_y));
+ if (plane <= 1 && mbmi->palette_mode_info.palette_size[plane])
+ vp10_decode_palette_tokens(xd, plane, r);
+
for (row = 0; row < max_blocks_high; row += step)
for (col = 0; col < max_blocks_wide; col += step)
predict_and_reconstruct_intra_block(xd, r, mbmi, plane,
@@ -1535,6 +1538,8 @@ static const uint8_t *decode_tiles(VP10Decoder *pbi,
&tile_data->bit_reader, pbi->decrypt_cb,
pbi->decrypt_state);
vp10_init_macroblockd(cm, &tile_data->xd, tile_data->dqcoeff);
+ tile_data->xd.plane[0].color_index_map = tile_data->color_index_map[0];
+ tile_data->xd.plane[1].color_index_map = tile_data->color_index_map[1];
}
}
@@ -1757,6 +1762,8 @@ static const uint8_t *decode_tiles_mt(VP10Decoder *pbi,
&tile_data->bit_reader, pbi->decrypt_cb,
pbi->decrypt_state);
vp10_init_macroblockd(cm, &tile_data->xd, tile_data->dqcoeff);
+ tile_data->xd.plane[0].color_index_map = tile_data->color_index_map[0];
+ tile_data->xd.plane[1].color_index_map = tile_data->color_index_map[1];
worker->had_error = 0;
if (i == num_workers - 1 || n == tile_cols - 1) {
@@ -1926,6 +1933,8 @@ static size_t read_uncompressed_header(VP10Decoder *pbi,
memset(&cm->ref_frame_map, -1, sizeof(cm->ref_frame_map));
pbi->need_resync = 0;
}
+ if (cm->current_video_frame == 0)
+ cm->allow_screen_content_tools = vpx_rb_read_bit(rb);
} else {
cm->intra_only = cm->show_frame ? 0 : vpx_rb_read_bit(rb);