Skip to content

Commit

Permalink
main : check if input files exist before proceeding (ggerganov#1872)
Browse files Browse the repository at this point in the history
Until the most recent commit (3d42463), the main.cpp sample file does
not check whether the input files exist or not. Consequently, the
model is loaded first before reporting whether there was a failure or
not when processing a file. In environments with HDD, this can take
about 50 seconds or more, depending on the loaded model.

This commit addresses this issue by checking in advance whether the
input files exist or not.
  • Loading branch information
Theldus committed Feb 19, 2024
1 parent 07d0428 commit dda4b0e
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions examples/main/main.cpp
Expand Up @@ -10,6 +10,8 @@
#include <vector>
#include <cstring>

#include <sys/stat.h>

#if defined(_MSC_VER)
#pragma warning(disable: 4244 4267) // possible loss of data
#endif
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit dda4b0e

Please sign in to comment.