From e1adfa9247cba4ed944dcc0ad9a813baeff73e94 Mon Sep 17 00:00:00 2001
From: Marvin Klimke <marvin.klimke@rwth-aachen.de>
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 */