diff --git a/libavformat/avio.c b/libavformat/avio.c index b6478c4f3b..27a6a7f6b1 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -113,6 +113,12 @@ int url_open(URLContext **puc, const char *filename, int flags) *puc = NULL; return err; } + + //We must be carefull here as url_seek() could be slow, for example for http + if( (flags & (URL_WRONLY | URL_RDWR)) + || !strcmp(proto_str, "file")) + if(!uc->is_streamed && url_seek(uc, 0, SEEK_SET) < 0) + uc->is_streamed= 1; *puc = uc; return 0; fail: