mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
When reading a stream, should retry on EAGAIN instead of just failing. Also,
when reading a live feed, should retry regardless of whether any client has opened the stream. Originally committed as revision 23621 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
891263eff2
commit
d9aac26761
@ -2306,12 +2306,16 @@ static int http_prepare_data(HTTPContext *c)
|
||||
else {
|
||||
AVPacket pkt;
|
||||
redo:
|
||||
if (av_read_frame(c->fmt_in, &pkt) < 0) {
|
||||
if (c->stream->feed && c->stream->feed->feed_opened) {
|
||||
ret = av_read_frame(c->fmt_in, &pkt);
|
||||
if (ret < 0) {
|
||||
if (c->stream->feed) {
|
||||
/* if coming from feed, it means we reached the end of the
|
||||
ffm file, so must wait for more data */
|
||||
c->state = HTTPSTATE_WAIT_FEED;
|
||||
return 1; /* state changed */
|
||||
} else if (ret == AVERROR(EAGAIN)) {
|
||||
/* input not ready, come back later */
|
||||
return 0;
|
||||
} else {
|
||||
if (c->stream->loop) {
|
||||
av_close_input_file(c->fmt_in);
|
||||
|
Loading…
Reference in New Issue
Block a user