summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2004-07-25 11:59:34 +0000
committerMichael Niedermayer <michaelni@gmx.at>2004-07-25 11:59:34 +0000
commit53e2f9caf80ed385a3d4cfb9200d8827b65580ef (patch)
tree821ceae2581e009ac37615348e25a5be6f6c4578 /libavformat
parentebb177ddef238db201a2bbbf0db21a6d7fbeba32 (diff)
ffserver fixes by (Koos Vriezen <koos.vriezen at xs4all dot nl>)
Originally committed as revision 3340 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/aviobuf.c7
-rw-r--r--libavformat/ffm.c1
-rw-r--r--libavformat/utils.c8
3 files changed, 12 insertions, 4 deletions
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 3838e46669..0ad63299a4 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -148,7 +148,8 @@ offset_t url_fseek(ByteIOContext *s, offset_t offset, int whence)
return -EPIPE;
s->buf_ptr = 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->eof_reached = 0;
@@ -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)
{
URLContext *h = opaque;
- url_seek(h, offset, whence);
- return 0;
+ return url_seek(h, offset, whence);
+ //return 0;
}
int url_fdopen(ByteIOContext *s, URLContext *h)
diff --git a/libavformat/ffm.c b/libavformat/ffm.c
index fca46b170f..22a2a812ff 100644
--- a/libavformat/ffm.c
+++ b/libavformat/ffm.c
@@ -150,6 +150,7 @@ static int ffm_write_header(AVFormatContext *s)
fst = av_mallocz(sizeof(FFMStream));
if (!fst)
goto fail;
+ av_set_pts_info(st, 64, 1, 1000000);
st->priv_data = fst;
codec = &st->codec;
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 04e11e2070..be3df4a6e7 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -428,7 +428,13 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
if (!fmt) {
/* read probe data */
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;
+ }
+ }
}
}