ref: acee43456b37211e78dc98f59a17995614e64f74
parent: b3c522d5c060b98bdd6a164df95c891cd7f6b985
author: Janne Grunau <janne-vlc@jannau.net>
date: Mon Nov 19 17:52:13 EST 2018
frame mt: mark frame as failed in dav1d_close() Fixes a deadlock on teardown with clusterfuzz-testcase-minimized-dav1d_fuzzer_mt-5636065151418368. Credits to oss-fuzz.
--- a/src/lib.c
+++ b/src/lib.c
@@ -286,6 +286,10 @@
// clean-up threading stuff
if (c->n_fc > 1) {
+ if (f->frame_hdr.refresh_context)
+ dav1d_cdf_thread_signal(&f->out_cdf);
+ dav1d_thread_picture_signal(&f->sr_cur, FRAME_ERROR,
+ PLANE_TYPE_ALL);
pthread_mutex_lock(&f->frame_thread.td.lock);
f->frame_thread.die = 1;
pthread_cond_signal(&f->frame_thread.td.cond);