[Libav-user] Faulty handling of file: protocol on Windows

Hendrik Schreiber hs at tagtraum.com
Tue Jun 18 10:43:05 CEST 2013


Hi,

I have searched the archive and the bug database, but haven't found any references to this... If this is an old hat, please ignore.


as far as I remember, in the dev documentation it is mentioned that one can open resources either via a filename, a URL or some other form of custom AVIOContext.

But in its current form FFmpeg does not seem to support well formed Windows file URLs.

On Windows, the scheme part (file:) is always followed by a bunch of slashes, usually three (file:///), before the drive designator.
A correct local file URL is e.g.:

file:///C:/somePath/someFile.mp3

A more complete explanation can be found at http://blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx

Contrary to this, in libavformat/file.c (static int file_open(URLContext *h, const char *filename, int flags), line 112) FFmpeg simply cuts off "file:" in line 119 and thinks it is done.

Unfortunately,

open("///C:/somePath/someFile.mp3", access, 0666); // line 135

leads to EINVAL/Invalid Argument. This function is called via avio_open2, which is called by avformat_open_input.


Is this a known issue? Or should I file a bug report?

Cheers,

-hendrik


More information about the Libav-user mailing list