提交 53e2f9ca 编写于 作者: M Michael Niedermayer

ffserver fixes by (Koos Vriezen <koos.vriezen at xs4all dot nl>)

Originally committed as revision 3340 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 ebb177dd
...@@ -600,7 +600,9 @@ static int http_server(void) ...@@ -600,7 +600,9 @@ static int http_server(void)
second to handle timeouts */ second to handle timeouts */
do { do {
ret = poll(poll_table, poll_entry - poll_table, delay); ret = poll(poll_table, poll_entry - poll_table, delay);
} while (ret == -1); if (ret < 0 && errno != EAGAIN && errno != EINTR)
return -1;
} while (ret <= 0);
cur_time = gettime_ms(); cur_time = gettime_ms();
......
...@@ -148,7 +148,8 @@ offset_t url_fseek(ByteIOContext *s, offset_t offset, int whence) ...@@ -148,7 +148,8 @@ offset_t url_fseek(ByteIOContext *s, offset_t offset, int whence)
return -EPIPE; return -EPIPE;
s->buf_ptr = s->buffer; s->buf_ptr = s->buffer;
s->buf_end = s->buffer; s->buf_end = s->buffer;
s->seek(s->opaque, offset, SEEK_SET); if (s->seek(s->opaque, offset, SEEK_SET) == (offset_t)-EPIPE)
return -EPIPE;
s->pos = offset; s->pos = offset;
} }
s->eof_reached = 0; s->eof_reached = 0;
...@@ -449,8 +450,8 @@ static int url_read_packet(void *opaque, uint8_t *buf, int buf_size) ...@@ -449,8 +450,8 @@ static int url_read_packet(void *opaque, uint8_t *buf, int buf_size)
static int url_seek_packet(void *opaque, int64_t offset, int whence) static int url_seek_packet(void *opaque, int64_t offset, int whence)
{ {
URLContext *h = opaque; URLContext *h = opaque;
url_seek(h, offset, whence); return url_seek(h, offset, whence);
return 0; //return 0;
} }
int url_fdopen(ByteIOContext *s, URLContext *h) int url_fdopen(ByteIOContext *s, URLContext *h)
......
...@@ -150,6 +150,7 @@ static int ffm_write_header(AVFormatContext *s) ...@@ -150,6 +150,7 @@ static int ffm_write_header(AVFormatContext *s)
fst = av_mallocz(sizeof(FFMStream)); fst = av_mallocz(sizeof(FFMStream));
if (!fst) if (!fst)
goto fail; goto fail;
av_set_pts_info(st, 64, 1, 1000000);
st->priv_data = fst; st->priv_data = fst;
codec = &st->codec; codec = &st->codec;
......
...@@ -428,7 +428,13 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, ...@@ -428,7 +428,13 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
if (!fmt) { if (!fmt) {
/* read probe data */ /* read probe data */
pd->buf_size = get_buffer(pb, buf, PROBE_BUF_SIZE); pd->buf_size = get_buffer(pb, buf, PROBE_BUF_SIZE);
url_fseek(pb, 0, SEEK_SET); if (url_fseek(pb, 0, SEEK_SET) == (offset_t)-EPIPE) {
url_fclose(pb);
if (url_fopen(pb, filename, URL_RDONLY) < 0) {
err = AVERROR_IO;
goto fail;
}
}
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册