Commit 042d3a46 authored by Wim Taymans's avatar Wim Taymans
Browse files

gst/udp/gstudpsrc.c: Improve UDP performance by avoiding a select() when we...

gst/udp/gstudpsrc.c: Improve UDP performance by avoiding a select() when we have data available immediatly.

Original commit message from CVS:
* gst/udp/gstudpsrc.c: (gst_udpsrc_create):
Improve UDP performance by avoiding a select() when we have data
available immediatly.
parent 41f04967
2007-08-16 Wim Taymans <wim.taymans@gmail.com>
* gst/udp/gstudpsrc.c: (gst_udpsrc_create):
Improve UDP performance by avoiding a select() when we have data
available immediatly.
2007-08-16 Wim Taymans <wim.taymans@gmail.com>
* gst/rtsp/gstrtpdec.c: (gst_rtp_dec_marshal_VOID__UINT_UINT),
......
......@@ -368,6 +368,14 @@ gst_udpsrc_create (GstPushSrc * psrc, GstBuffer ** buf)
udpsrc = GST_UDPSRC (psrc);
/* quick check, avoid going in select when we already have data */
readsize = 0;
if ((ret = IOCTL_SOCKET (udpsrc->sock, FIONREAD, &readsize)) < 0)
goto ioctl_failed;
if (readsize > 0)
goto no_select;
do {
gboolean stop;
struct timeval timeval, *timeout;
......@@ -433,11 +441,12 @@ gst_udpsrc_create (GstPushSrc * psrc, GstBuffer ** buf)
if ((ret = IOCTL_SOCKET (udpsrc->sock, FIONREAD, &readsize)) < 0)
goto ioctl_failed;
GST_LOG_OBJECT (udpsrc, "ioctl says %d bytes available", (int) readsize);
if (!readsize)
goto nothing_to_read;
no_select:
GST_LOG_OBJECT (udpsrc, "ioctl says %d bytes available", (int) readsize);
pktdata = g_malloc (readsize);
pktsize = readsize;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment