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