diff --git a/src/thread_task.c b/src/thread_task.c index ab2376c30a4b5630cb812b4f95efef24d8d84068..bfedf6e5bb63f5c5746bc86ff166d5310c5c8977 100644 --- a/src/thread_task.c +++ b/src/thread_task.c @@ -795,6 +795,7 @@ void *dav1d_worker_task(void *data) { atomic_load(&f->task_thread.done[0]) && (!uses_2pass || atomic_load(&f->task_thread.done[1]))) { + error = atomic_load(&f->task_thread.error); dav1d_decode_frame_exit(f, error == 1 ? DAV1D_ERR(EINVAL) : error ? DAV1D_ERR(ENOMEM) : 0); f->n_tile_data = 0; @@ -891,6 +892,7 @@ void *dav1d_worker_task(void *data) { if (!num_tasks && atomic_load(&f->task_thread.done[0]) && atomic_load(&f->task_thread.done[1])) { + error = atomic_load(&f->task_thread.error); dav1d_decode_frame_exit(f, error == 1 ? DAV1D_ERR(EINVAL) : error ? DAV1D_ERR(ENOMEM) : 0); f->n_tile_data = 0; @@ -920,6 +922,7 @@ void *dav1d_worker_task(void *data) { if (!num_tasks && atomic_load(&f->task_thread.done[0]) && (!uses_2pass || atomic_load(&f->task_thread.done[1]))) { + error = atomic_load(&f->task_thread.error); dav1d_decode_frame_exit(f, error == 1 ? DAV1D_ERR(EINVAL) : error ? DAV1D_ERR(ENOMEM) : 0); f->n_tile_data = 0;