diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2015-09-06 19:05:52 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-09-06 20:43:38 +0200 |
commit | 7990beedee02b24850a20de651ecce5a96048ab9 (patch) | |
tree | 9be15d05d3f5abb43a7a0388ca0f9ec78dc3c62f | |
parent | 1956cfbaedd364b30095e956fc881f7eaa1e21ff (diff) | |
download | ffmpeg-7990beedee02b24850a20de651ecce5a96048ab9.tar.gz |
avformat/http: require seekability only when seeking to position != 0
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavformat/http.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/http.c b/libavformat/http.c index 20e942e147..476b53b3f6 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -1427,7 +1427,7 @@ static int64_t http_seek_internal(URLContext *h, int64_t off, int whence, int fo ((whence == SEEK_CUR && off == 0) || (whence == SEEK_SET && off == s->off))) return s->off; - else if ((s->filesize == -1 && whence == SEEK_END) || h->is_streamed) + else if ((s->filesize == -1 && whence == SEEK_END)) return AVERROR(ENOSYS); if (whence == SEEK_CUR) @@ -1440,6 +1440,9 @@ static int64_t http_seek_internal(URLContext *h, int64_t off, int whence, int fo return AVERROR(EINVAL); s->off = off; + if (s->off && h->is_streamed) + return AVERROR(ENOSYS); + /* we save the old context in case the seek fails */ old_buf_size = s->buf_end - s->buf_ptr; memcpy(old_buf, s->buf_ptr, old_buf_size); |