Mark failed-to-decode frames as incomplete when --maxframedelay=1

Credit to oss-fuzz.
This commit is contained in:
Ronald S. Bultje
2021-11-12 07:56:05 -05:00
parent c7a5b90001
commit 2337127cec
2 changed files with 3 additions and 0 deletions
+2
View File
@@ -3425,6 +3425,7 @@ void dav1d_decode_frame_exit(Dav1dFrameContext *const f, const int retval) {
for (int i = 0; i < f->n_tile_data; i++)
dav1d_data_unref_internal(&f->tile[i].data);
f->task_thread.retval = retval;
}
int dav1d_decode_frame(Dav1dFrameContext *const f) {
@@ -3448,6 +3449,7 @@ int dav1d_decode_frame(Dav1dFrameContext *const f) {
}
}
pthread_mutex_unlock(&f->task_thread.ttd->lock);
res = f->task_thread.retval;
} else {
res = dav1d_decode_frame_main(f);
if (!res && f->frame_hdr->refresh_context && f->task_thread.update_set) {
+1
View File
@@ -302,6 +302,7 @@ struct Dav1dFrameContext {
struct Dav1dTask *tasks, *tile_tasks[2], init_task;
int num_tasks, num_tile_tasks;
int done[2];
int retval;
int update_set; // whether we need to update CDF reference
atomic_int error;
int task_counter;