summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2016-11-01 18:45:50 -0700
committerJames Zern <jzern@google.com>2016-11-01 18:45:50 -0700
commit1961a92a940ce73bb4f522c3e87b1fbdea216112 (patch)
treee5aaf2806f6bb9437d8b712981897f0ef65d64e0 /vp9
parent1b275ab898c5ab891f8364041b66152d81b6ae4f (diff)
downloadlibvpx-1961a92a940ce73bb4f522c3e87b1fbdea216112.tar
libvpx-1961a92a940ce73bb4f522c3e87b1fbdea216112.tar.gz
libvpx-1961a92a940ce73bb4f522c3e87b1fbdea216112.tar.bz2
libvpx-1961a92a940ce73bb4f522c3e87b1fbdea216112.zip
vp9,tile_worker_hook: correctly set jmp target
vp9_init_macroblockd() resets the error_info to cm's global copy; this needs to be set to the thread-level target to avoid jumping to the incorrect stack, resulting in hang or crash. broken since: 1f4a6c8 vp9/tile_worker_hook: add multiple tile decoding includes v1.5.0, v1.6.0 BUG=629481 Change-Id: Icbf1696b25ba8c479e845fbf227b3c3ca73542f5
Diffstat (limited to 'vp9')
-rw-r--r--vp9/decoder/vp9_decodeframe.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c
index fde0b7e31..628d1c8d2 100644
--- a/vp9/decoder/vp9_decodeframe.c
+++ b/vp9/decoder/vp9_decodeframe.c
@@ -1517,7 +1517,6 @@ static int tile_worker_hook(TileWorkerData *const tile_data,
return 0;
}
- tile_data->xd.error_info = &tile_data->error_info;
tile_data->xd.corrupted = 0;
do {
@@ -1529,6 +1528,8 @@ static int tile_worker_hook(TileWorkerData *const tile_data,
&tile_data->error_info, &tile_data->bit_reader,
pbi->decrypt_cb, pbi->decrypt_state);
vp9_init_macroblockd(&pbi->common, &tile_data->xd, tile_data->dqcoeff);
+ // init resets xd.error_info
+ tile_data->xd.error_info = &tile_data->error_info;
for (mi_row = tile->mi_row_start; mi_row < tile->mi_row_end;
mi_row += MI_BLOCK_SIZE) {