On 12/30/2017 8:44 AM, wm4 wrote:
There is no POSIX error code for EOF - recv() signals EOF by simply
returning 0. But libavformat recently changed its conventionts and

"conventionts" -> "conventions"

requires an explicit AVERROR_EOF, or it might get into an endless retry
loop, consuming 100% CPU while doing nothing.
---
  libavformat/tcp.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/libavformat/tcp.c b/libavformat/tcp.c
index fef0729da6..8773493df1 100644
--- a/libavformat/tcp.c
+++ b/libavformat/tcp.c
@@ -225,6 +225,8 @@ static int tcp_read(URLContext *h, uint8_t *buf, int size)
              return ret;
      }
      ret = recv(s->fd, buf, size, 0);
+    if (ret == 0)
+        return AVERROR_EOF;
      return ret < 0 ? ff_neterrno() : ret;
  }

LGTM
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to