Spaces:
Running
Running
ulatekh
commited on
common : fix file-handle leak in read_wav() (#2026)
Browse files- examples/common.cpp +4 -0
examples/common.cpp
CHANGED
|
@@ -676,21 +676,25 @@ bool read_wav(const std::string & fname, std::vector<float>& pcmf32, std::vector
|
|
| 676 |
|
| 677 |
if (wav.channels != 1 && wav.channels != 2) {
|
| 678 |
fprintf(stderr, "%s: WAV file '%s' must be mono or stereo\n", __func__, fname.c_str());
|
|
|
|
| 679 |
return false;
|
| 680 |
}
|
| 681 |
|
| 682 |
if (stereo && wav.channels != 2) {
|
| 683 |
fprintf(stderr, "%s: WAV file '%s' must be stereo for diarization\n", __func__, fname.c_str());
|
|
|
|
| 684 |
return false;
|
| 685 |
}
|
| 686 |
|
| 687 |
if (wav.sampleRate != COMMON_SAMPLE_RATE) {
|
| 688 |
fprintf(stderr, "%s: WAV file '%s' must be %i kHz\n", __func__, fname.c_str(), COMMON_SAMPLE_RATE/1000);
|
|
|
|
| 689 |
return false;
|
| 690 |
}
|
| 691 |
|
| 692 |
if (wav.bitsPerSample != 16) {
|
| 693 |
fprintf(stderr, "%s: WAV file '%s' must be 16-bit\n", __func__, fname.c_str());
|
|
|
|
| 694 |
return false;
|
| 695 |
}
|
| 696 |
|
|
|
|
| 676 |
|
| 677 |
if (wav.channels != 1 && wav.channels != 2) {
|
| 678 |
fprintf(stderr, "%s: WAV file '%s' must be mono or stereo\n", __func__, fname.c_str());
|
| 679 |
+
drwav_uninit(&wav);
|
| 680 |
return false;
|
| 681 |
}
|
| 682 |
|
| 683 |
if (stereo && wav.channels != 2) {
|
| 684 |
fprintf(stderr, "%s: WAV file '%s' must be stereo for diarization\n", __func__, fname.c_str());
|
| 685 |
+
drwav_uninit(&wav);
|
| 686 |
return false;
|
| 687 |
}
|
| 688 |
|
| 689 |
if (wav.sampleRate != COMMON_SAMPLE_RATE) {
|
| 690 |
fprintf(stderr, "%s: WAV file '%s' must be %i kHz\n", __func__, fname.c_str(), COMMON_SAMPLE_RATE/1000);
|
| 691 |
+
drwav_uninit(&wav);
|
| 692 |
return false;
|
| 693 |
}
|
| 694 |
|
| 695 |
if (wav.bitsPerSample != 16) {
|
| 696 |
fprintf(stderr, "%s: WAV file '%s' must be 16-bit\n", __func__, fname.c_str());
|
| 697 |
+
drwav_uninit(&wav);
|
| 698 |
return false;
|
| 699 |
}
|
| 700 |
|