diff --git a/src/modules/module-filter-chain/builtin_plugin.c b/src/modules/module-filter-chain/builtin_plugin.c index 5454a9732..a0e27e568 100644 --- a/src/modules/module-filter-chain/builtin_plugin.c +++ b/src/modules/module-filter-chain/builtin_plugin.c @@ -686,11 +686,15 @@ static float *read_closest(char **filenames, float gain, int delay, int offset, int diff = INT_MAX; uint32_t best = 0, i; + float *samples = NULL; for (i = 0; i < MAX_RATES && filenames[i] && filenames[i][0]; i++) { fs[i] = sf_open(filenames[i], SFM_READ, &infos[i]); - if (!fs[i]) + if (!fs[i]) { + pw_log_error("Can't open file %s: %s", filenames[i], + sf_strerror(fs[i])); continue; + } if (labs((long)infos[i].samplerate - (long)*rate) < diff) { best = i; @@ -698,11 +702,11 @@ static float *read_closest(char **filenames, float gain, int delay, int offset, pw_log_debug("new closest match: %d", infos[i].samplerate); } } - - pw_log_info("loading best rate:%u %s", infos[best].samplerate, filenames[best]); - float *samples = read_samples_from_sf(fs[best], infos[best], gain, delay, - offset, length, channel, rate, n_samples); - + if (fs[best] != NULL) { + pw_log_info("loading best rate:%u %s", infos[best].samplerate, filenames[best]); + samples = read_samples_from_sf(fs[best], infos[best], gain, delay, + offset, length, channel, rate, n_samples); + } for (i = 0; i < MAX_RATES; i++) if (fs[i]) sf_close(fs[i]);