summaryrefslogtreecommitdiff
path: root/test/analysis/AnalysisClipping.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/analysis/AnalysisClipping.c')
-rw-r--r--test/analysis/AnalysisClipping.c25
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;
+}