[FFmpeg-cvslog] http: Consider the stream as seekable if the reply contains Accept-Ranges: bytes

Stefan Fritsch git at videolan.org
Mon Sep 5 03:17:43 CEST 2011


ffmpeg | branch: master | Stefan Fritsch <sf at sfritsch.de> | Sun Sep  4 10:56:24 2011 +0200| [346ea9e22240b4442f479518f6c3b40c9bec9487] | committer: Martin Storsjö

http: Consider the stream as seekable if the reply contains Accept-Ranges: bytes

The initial request contains "Range: 0-", which servers normally
have responded with "HTTP/1.1 206 Partial Content" reply with
a Content-Range header, which was used as indicator for seekability.

Apache, since 2.2.20, responds with "HTTP/1.1 200 OK" for these
requests, which is more friendly to caches and proxies, but the
seekability still is indicated via the Accept-Ranges: bytes header.

Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=346ea9e22240b4442f479518f6c3b40c9bec9487
---

 libavformat/http.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/libavformat/http.c b/libavformat/http.c
index aa8c665..a20bfdf 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -265,6 +265,8 @@ static int process_line(URLContext *h, char *line, int line_count,
                     s->filesize = atoll(slash+1);
             }
             h->is_streamed = 0; /* we _can_ in fact seek */
+        } else if (!strcasecmp(tag, "Accept-Ranges") && !strncmp(p, "bytes", 5)) {
+            h->is_streamed = 0;
         } else if (!strcasecmp (tag, "Transfer-Encoding") && !strncasecmp(p, "chunked", 7)) {
             s->filesize = -1;
             s->chunksize = 0;



More information about the ffmpeg-cvslog mailing list