[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