diff --git a/examples/main/main.cpp b/examples/main/main.cpp index 8abb27f..da4ba6a 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -10,6 +10,8 @@ #include #include +#include + #if defined(_MSC_VER) #pragma warning(disable: 4244 4267) // possible loss of data #endif @@ -841,6 +843,20 @@ int main(int argc, char ** argv) { return 1; } + // remove non-existent files + for (auto it = params.fname_inp.begin(); it != params.fname_inp.end();) { + struct stat st; + const auto fname_inp = it->c_str(); + + if (stat(fname_inp, &st) == -1) { + fprintf(stderr, "error: input file not found '%s'\n", fname_inp); + it = params.fname_inp.erase(it); + continue; + } + + it++; + } + if (params.fname_inp.empty()) { fprintf(stderr, "error: no input files specified\n"); whisper_print_usage(argc, argv, params);