summaryrefslogtreecommitdiffstats
path: root/filters/f_async_queue.c
diff options
context:
space:
mode:
Diffstat (limited to 'filters/f_async_queue.c')
-rw-r--r--filters/f_async_queue.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/filters/f_async_queue.c b/filters/f_async_queue.c
index 696649f3d1..8aa2041dd9 100644
--- a/filters/f_async_queue.c
+++ b/filters/f_async_queue.c
@@ -248,7 +248,12 @@ static void reset(struct mp_filter *f)
struct priv *p = f->priv;
struct async_queue *q = p->q;
- reset_queue(q);
+ pthread_mutex_lock(&q->lock);
+ // If the queue is in reading state, it is logical that it should request
+ // input immediately.
+ if (mp_pin_get_dir(f->pins[0]) == MP_PIN_IN && q->reading)
+ mp_filter_wakeup(f);
+ pthread_mutex_unlock(&q->lock);
}
// producer
@@ -266,7 +271,6 @@ static const struct mp_filter_info info_out = {
.priv_size = sizeof(struct priv),
.destroy = destroy,
.process = process_out,
- .reset = reset,
};
struct mp_filter *mp_async_queue_create_filter(struct mp_filter *parent,