avconv: add -n option to immediately exit when output files already exist

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Vittorio Giovara 2013-07-31 14:48:49 +02:00 committed by Martin Storsjö
parent b85dbe68e2
commit 7748dd41be
3 changed files with 13 additions and 1 deletions

View File

@ -25,6 +25,7 @@ version 10:
- support for WavPack muxing (raw and in Matroska) - support for WavPack muxing (raw and in Matroska)
- Go2Webinar decoder - Go2Webinar decoder
- WavPack encoding through libwavpack - WavPack encoding through libwavpack
- Added the -n parameter to avconv
version 9: version 9:

View File

@ -71,6 +71,7 @@ int print_stats = 1;
int qp_hist = 0; int qp_hist = 0;
static int file_overwrite = 0; static int file_overwrite = 0;
static int file_skip = 0;
static int video_discard = 0; static int video_discard = 0;
static int intra_dc_precision = 8; static int intra_dc_precision = 8;
static int using_stdin = 0; static int using_stdin = 0;
@ -508,11 +509,16 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
static void assert_file_overwrite(const char *filename) static void assert_file_overwrite(const char *filename)
{ {
if (file_overwrite && file_skip) {
fprintf(stderr, "Error, both -y and -n supplied. Exiting.\n");
exit_program(1);
}
if (!file_overwrite && if (!file_overwrite &&
(strchr(filename, ':') == NULL || filename[1] == ':' || (strchr(filename, ':') == NULL || filename[1] == ':' ||
av_strstart(filename, "file:", NULL))) { av_strstart(filename, "file:", NULL))) {
if (avio_check(filename, 0) == 0) { if (avio_check(filename, 0) == 0) {
if (!using_stdin) { if (!using_stdin && !file_skip) {
fprintf(stderr,"File '%s' already exists. Overwrite ? [y/N] ", filename); fprintf(stderr,"File '%s' already exists. Overwrite ? [y/N] ", filename);
fflush(stderr); fflush(stderr);
if (!read_yesno()) { if (!read_yesno()) {
@ -2113,6 +2119,8 @@ const OptionDef options[] = {
"force format", "fmt" }, "force format", "fmt" },
{ "y", OPT_BOOL, { &file_overwrite }, { "y", OPT_BOOL, { &file_overwrite },
"overwrite output files" }, "overwrite output files" },
{ "n", OPT_BOOL, { &file_skip },
"never overwrite output files" },
{ "c", HAS_ARG | OPT_STRING | OPT_SPEC | { "c", HAS_ARG | OPT_STRING | OPT_SPEC |
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(codec_names) }, OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(codec_names) },
"codec name", "codec" }, "codec name", "codec" },

View File

@ -233,6 +233,9 @@ input file name
@item -y (@emph{global}) @item -y (@emph{global})
Overwrite output files without asking. Overwrite output files without asking.
@item -n (@emph{global})
Immediately exit when output files already exist.
@item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream}) @item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
@itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream}) @itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
Select an encoder (when used before an output file) or a decoder (when used Select an encoder (when used before an output file) or a decoder (when used