[FFmpeg-devel] [PATCH]libavformat/http: fix http error eof

Steven Liu lingjiujianke at gmail.com
Tue May 23 08:37:04 EEST 2017


2017-05-23 10:47 GMT+08:00 raymond zheng <raymondzheng1412 at gmail.com>:

> 1. An exception occurred in the  CDN edge server, that will lead to close
> the http connection.
>
> 2. Because http is disconnected, so ffurl_read will return 0
>
> 3. Avformat will consider I/O is eof
>
> 4. Right now http is actually disconnect abnormally, it should return to
> ERROR, rather than return to EOF.
>
Can you reproduce it? and provide me try to reproduce it.
I cannot sure if apply this patch will influence other people require
function, for example: retry or reconnect again.


> 2017-05-22 23:05 GMT+08:00 Steven Liu <lingjiujianke at gmail.com>:
>
> > 2017-05-22 22:36 GMT+08:00 raymond zheng <raymondzheng1412 at gmail.com>:
> >
> > > I don't think it need a timeout event to disconnect the link, because
> > > when ffurl_read
> > > return to 0, it means the link disconnect. If s->off < target_end, it
> > > means AVERROR,
> > > otherwise, it's normal eof.
> > > I don't use chunked in HTTP, so s->chunksize should be initial value,
> and
> > > shouldn't be changed or even decreased.
> > >
> > > What will happen if not apply this patch? can you reproduce the bug
> step
> > by step.
> >
> > > 2017-05-22 18:51 GMT+08:00 Steven Liu <lingjiujianke at gmail.com>:
> > >
> > > > 2017-05-18 15:19 GMT+08:00 raymond zheng <raymondzheng1412 at gmail.com
> >:
> > > >
> > > > > Hi:
> > > > >     I find an issue about http. I don't use chunked, so
> s->chunksize
> > > will
> > > > > be set as UINT64_MAX when http open, but because of "if
> > (s->chunksize >
> > > > 0)
> > > > > s->chunksize -= len;" then chunksize will not be UINT64_MAX.
> > > > >
> > > > >     If ffurl_read return to 0, s->off < target_end, http_buf_read
> > will
> > > > > return to 0, then this will lead to eof, so this is incorrect, and
> > > > > http_buf_read should return to AVERROR(EIO).
> > > > >
> > > >
> > > > if connect to CDN http edge server, this maybe incorrect.  or need a
> > > > timeout  event to disconnect the link.
> > > >
> > > > >
> > > > > _______________________________________________
> > > > > ffmpeg-devel mailing list
> > > > > ffmpeg-devel at ffmpeg.org
> > > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > > >
> > > > >
> > > > _______________________________________________
> > > > ffmpeg-devel mailing list
> > > > ffmpeg-devel at ffmpeg.org
> > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > >
> > > _______________________________________________
> > > ffmpeg-devel mailing list
> > > ffmpeg-devel at ffmpeg.org
> > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list