[FFmpeg-devel] [PATCH] tcp: properly return EOF

wm4 nfxjfg at googlemail.com
Sun Dec 31 17:18:58 EET 2017


On Sat, 30 Dec 2017 13:22:37 -0800
Aaron Levinson <alevinsn_dev at levland.net> wrote:

> 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

Pushed, with the typo fixed.


More information about the ffmpeg-devel mailing list