From e7af4682d2b0c3bcf3a0819e9c21d59975d48131 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Cr=C3=AAte?= Date: Mon, 8 Jul 2019 15:50:59 -0400 Subject: [PATCH] srtsrc: Receive one frame per gstbuffer Don't aggregate the received data, just receive it one packet at a time. So it keeps the packetization boundaries --- ext/srt/gstsrtobject.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/ext/srt/gstsrtobject.c b/ext/srt/gstsrtobject.c index e90676961..ddf3e5a2e 100644 --- a/ext/srt/gstsrtobject.c +++ b/ext/srt/gstsrtobject.c @@ -1191,25 +1191,11 @@ gst_srt_object_read (GstSRTObject * srtobject, continue; } - while (len < size) { - gint recv; - gint rest = size - len; - /* Workaround for SRT being unhappy about buffers that - * are less than the chunk size */ - if (rest < msg_size) - goto out; - - recv = srt_recvmsg (rsock, (char *) (data + len), rest); - - if (recv <= 0) - goto out; - - len += recv; - } + len = srt_recvmsg (rsock, (char *) (data), size); + break; } -out: return len; } -- 2.34.1