Fixes an issue where an int64_t ffurl_seek return-value was being stored in an int (32-bit) "r" variable, leading to integer overflow when seeking into a large file (>2GB), and ultimately a "Failed to perform internal seek" error mesage.
To test, try running `ffprobe 'cache:http://<something>'` on a file that is ~3GB large, whose moov atom is at the end of the file --- libavformat/cache.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/libavformat/cache.c b/libavformat/cache.c index a762aa9..31f63e6 100644 --- a/libavformat/cache.c +++ b/libavformat/cache.c @@ -156,7 +156,7 @@ static int cache_read(URLContext *h, unsigned char *buf, int size) { Context *c= h->priv_data; CacheEntry *entry, *next[2] = {NULL, NULL}; - int r; + int64_t r; entry = av_tree_find(c->root, &c->logical_pos, cmp, (void**)next); -- 1.7.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel