From e1adfa9247cba4ed944dcc0ad9a813baeff73e94 Mon Sep 17 00:00:00 2001 From: Marvin Klimke Date: Fri, 25 Jan 2019 17:34:51 +0100 Subject: [PATCH] prevent rtp_read from returning when queue is empty --- lib/nodes/rtp.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/nodes/rtp.c b/lib/nodes/rtp.c index 20d4aaa4f..6c74d30f8 100644 --- a/lib/nodes/rtp.c +++ b/lib/nodes/rtp.c @@ -468,18 +468,19 @@ int rtp_type_stop() int rtp_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *release) { - int ret; + int ret = 0; struct rtp *r = (struct rtp *) n->_vd; size_t bytes; char *buf; struct mbuf *mb; /* Get data from queue */ - ret = queue_signalled_pull(&r->recv_queue, (void **) &mb); - if (ret <= 0) { - if (ret < 0) + while (ret == 0) { + ret = queue_signalled_pull(&r->recv_queue, (void **) &mb); + if (ret < 0) { warning("Failed to pull from queue"); - return ret; + return ret; + } } /* Read from mbuf */