aboutsummaryrefslogtreecommitdiff
path: root/libvpx/vp8/vp8_dx_iface.c
diff options
context:
space:
mode:
Diffstat (limited to 'libvpx/vp8/vp8_dx_iface.c')
-rw-r--r--libvpx/vp8/vp8_dx_iface.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/libvpx/vp8/vp8_dx_iface.c b/libvpx/vp8/vp8_dx_iface.c
index ba0714abe..6d88e5154 100644
--- a/libvpx/vp8/vp8_dx_iface.c
+++ b/libvpx/vp8/vp8_dx_iface.c
@@ -371,8 +371,6 @@ static vpx_codec_err_t vp8_decode(vpx_codec_alg_priv_t *ctx,
pc->Width = ctx->si.w;
pc->Height = ctx->si.h;
{
- int prev_mb_rows = pc->mb_rows;
-
if (setjmp(pbi->common.error.jmp)) {
pbi->common.error.setjmp = 0;
/* on failure clear the cached resolution to ensure a full
@@ -398,6 +396,12 @@ static vpx_codec_err_t vp8_decode(vpx_codec_alg_priv_t *ctx,
"Invalid frame height");
}
+#if CONFIG_MULTITHREAD
+ if (vpx_atomic_load_acquire(&pbi->b_multithreaded_rd)) {
+ vp8mt_de_alloc_temp_buffers(pbi, pc->mb_rows);
+ }
+#endif
+
if (vp8_alloc_frame_buffers(pc, pc->Width, pc->Height)) {
vpx_internal_error(&pc->error, VPX_CODEC_MEM_ERROR,
"Failed to allocate frame buffers");
@@ -442,10 +446,8 @@ static vpx_codec_err_t vp8_decode(vpx_codec_alg_priv_t *ctx,
#if CONFIG_MULTITHREAD
if (vpx_atomic_load_acquire(&pbi->b_multithreaded_rd)) {
- vp8mt_alloc_temp_buffers(pbi, pc->Width, prev_mb_rows);
+ vp8mt_alloc_temp_buffers(pbi, pc->Width, 0);
}
-#else
- (void)prev_mb_rows;
#endif
}