[FFmpeg-cvslog] ffmpeg_opt: assert_file_overwrite: Work for all file protocol outputs
Alexander Strasser
git at videolan.org
Sun Feb 16 22:39:21 CET 2014
ffmpeg | branch: master | Alexander Strasser <eclipse7 at gmx.net> | Sun Jan 5 03:06:20 2014 +0100| [2b17c7685fd3ff0bffaf3b45458d4a6283f3935f] | committer: Alexander Strasser
ffmpeg_opt: assert_file_overwrite: Work for all file protocol outputs
Currently the file overwrite check does not work for paths that
contain a colon.
Use avio_find_protocol to always execute the existence check if
the file protocol is going to be used.
Fix remaining part of ticket #3249.
Signed-off-by: Alexander Strasser <eclipse7 at gmx.net>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2b17c7685fd3ff0bffaf3b45458d4a6283f3935f
---
ffmpeg_opt.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index 4e0dc47..26798f7 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -697,10 +697,9 @@ static void assert_file_overwrite(const char *filename)
exit_program(1);
}
- if (!file_overwrite &&
- (strchr(filename, ':') == NULL || filename[1] == ':' ||
- av_strstart(filename, "file:", NULL))) {
- if (avio_check(filename, 0) == 0) {
+ if (!file_overwrite) {
+ const char *proto_name = avio_find_protocol_name(filename);
+ if (proto_name && !strcmp(proto_name, "file") && avio_check(filename, 0) == 0) {
if (stdin_interaction && !no_file_overwrite) {
fprintf(stderr,"File '%s' already exists. Overwrite ? [y/N] ", filename);
fflush(stderr);
More information about the ffmpeg-cvslog
mailing list