[FFmpeg-devel] url_exists function in avio.c opens instead of checking existence
Maker aka Michele
maker.py
Tue Jan 19 22:05:54 CET 2010
hello. This is my first post, so sorry for my bad English and for whatever
wrong i will do.
I started playing with ffmpeg code in order to try to fix this bug:
http://thread.gmane.org/gmane.comp.video.ffmpeg.user/24644/focus=24707
In few words, in avio.c uses url_open to check if an url exists
(libavformat/avio.c : 199). This is semantically wrong becouse it tries to
_open_ that file (in read-only) instead of checking his real existence. This
maybe create bugs if the target file is fifo (it loops), has 000 permissions
(fails), etc.
This can happen with whatever protocol.
so, I would like to receive some advice before starting:
my original idea was to extend the original URLProtocol structure (
doc here<http://cekirdek.pardus.org.tr/%7Eismail/ffmpeg-docs/structURLProtocol.html#eec7eb72a222542a27d237b8cf2671b4>)
with something like " int(* url_exists )(URLContext *h, const char
*filename) " and create some functions to check if filename exists using
stats. It's a clear solution, but I would make URLProtocol a little bigger.
Then I would make a parse_url function (this actually is done by url_open
[111:135 lines], but it's not its job) and edit url_exists in order to use
proto->url_exists.
Is this solution ok for you, or there's something better I could do?
More information about the ffmpeg-devel
mailing list