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