From 0b4c5c99bc6f028cc64a7d35e1068b982544d833 Mon Sep 17 00:00:00 2001 From: rogerdpack Date: Fri, 21 Mar 2014 17:37:42 -0600 Subject: [PATCH] avformat/udp: cleanup comments, add a warning if receive buffer is unexpectedly unable to be set high enough which can happen easily in linux Signed-off-by: rogerdpack Signed-off-by: Michael Niedermayer --- libavformat/udp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index a61ac33e31..d9a18d5739 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -695,8 +695,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) goto fail; } } else { - /* set udp recv buffer size to the largest possible udp packet size to - * avoid losing data on OSes that set this too low by default. */ + /* set udp recv buffer size to the requested value (default 64K) */ tmp = s->buffer_size; if (setsockopt(udp_fd, SOL_SOCKET, SO_RCVBUF, &tmp, sizeof(tmp)) < 0) { log_net_error(h, AV_LOG_WARNING, "setsockopt(SO_RECVBUF)"); @@ -704,8 +703,11 @@ static int udp_open(URLContext *h, const char *uri, int flags) len = sizeof(tmp); if (getsockopt(udp_fd, SOL_SOCKET, SO_RCVBUF, &tmp, &len) < 0) { log_net_error(h, AV_LOG_WARNING, "getsockopt(SO_RCVBUF)"); - } else + } else { av_log(h, AV_LOG_DEBUG, "end receive buffer size reported is %d\n", tmp); + if(tmp < s->buffer_size) + av_log(h, AV_LOG_WARNING, "attempted to set receive buffer to size %d but it only ended up set as %d", s->buffer_size, tmp); + } /* make the socket non-blocking */ ff_socket_nonblock(udp_fd, 1);