Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src/lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.c')
-rw-r--r--src/lib.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib.c b/src/lib.c
index 15944a1..98aa2a1 100644
--- a/src/lib.c
+++ b/src/lib.c
@@ -237,8 +237,13 @@ int dav1d_get_picture(Dav1dContext *const c, Dav1dPicture *const out)
if (++c->frame_thread.next == c->n_fc)
c->frame_thread.next = 0;
if (out_delayed->p.data[0]) {
- if (out_delayed->visible && !out_delayed->flushed)
+ const unsigned progress = atomic_load_explicit(&out_delayed->progress[1],
+ memory_order_relaxed);
+ if (out_delayed->visible && !out_delayed->flushed &&
+ progress != FRAME_ERROR)
+ {
dav1d_picture_ref(&c->out, &out_delayed->p);
+ }
dav1d_thread_picture_unref(out_delayed);
if (c->out.data[0])
return output_image(c, out, &c->out);