diff options
Diffstat (limited to 'test/analysis/AnalysisSilence.c')
| -rw-r--r-- | test/analysis/AnalysisSilence.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/analysis/AnalysisSilence.c b/test/analysis/AnalysisSilence.c new file mode 100644 index 0000000..0876245 --- /dev/null +++ b/test/analysis/AnalysisSilence.c @@ -0,0 +1,25 @@ +#include "AnalysisSilence.h" +#include "AnalyzeFile.h" + +boolByte analysisSilence(const SampleBuffer sampleBuffer, AnalysisFunctionData data) +{ + for (ChannelCount i = 0; i < sampleBuffer->numChannels; ++i) { + for (SampleCount j = 0; j < sampleBuffer->blocksize; ++j) { + if (sampleBuffer->samples[i][j] == 0.0f) { + data->consecutiveFailCounter++; + + if (data->consecutiveFailCounter > data->failTolerance) { + data->failedChannel = i; + data->failedSample = j; + return false; + } + } else { + if (data->consecutiveFailCounter > 0) { + data->consecutiveFailCounter = 0; + } + } + } + } + + return true; +} |
