]> git.sesse.net Git - ffmpeg/commitdiff
cache: Fallback to using the cache size for AVSEEK_SIZE if the underlaying protocol...
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 16 Oct 2011 14:54:27 +0000 (16:54 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 16 Oct 2011 15:12:37 +0000 (17:12 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/cache.c

index bbc85925c22fce9912fb71ba39848b8224c14407..c08250b1871e652ae5a31aa207ace9a5f079eae9 100644 (file)
@@ -95,7 +95,14 @@ static int64_t cache_seek(URLContext *h, int64_t pos, int whence)
     Context *c= h->priv_data;
 
     if (whence == AVSEEK_SIZE) {
-        return ffurl_seek(c->inner, pos, whence);
+        pos= ffurl_seek(c->inner, pos, whence);
+        if(pos <= 0){
+            pos= ffurl_seek(c->inner, -1, SEEK_END);
+            ffurl_seek(c->inner, c->end, SEEK_SET);
+            if(pos <= 0)
+                return c->end;
+        }
+        return pos;
     }
 
     pos= lseek(c->fd, pos, whence);