summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJudy Hsiao <judyhsiao@google.com>2019-10-02 11:28:29 +0800
committerCommit Bot <commit-bot@chromium.org>2019-10-07 04:50:41 +0000
commit5b227937c8a596395cc92bd6790ab53f8cb4f5e4 (patch)
tree0d6bd8fe613d38e36af33fe88946932614719edd
parent68b2fd9163e433f87b481dbeb983bd83910e4563 (diff)
downloadadhd-5b227937c8a596395cc92bd6790ab53f8cb4f5e4.tar.gz
CRAS: Initialize x_prev in dcblock_process
Set correct inital value of x_prev to remove the DC \ and slope in the beginning of the recorded waveform BUG=b:133722255 TEST=1. Make sure DC filter is applied \ 2. powerd_dbus_suspend \ 3. arecord -f dat -d 10 /tmp/test-cras.wav \ 4. The peak in the beginning of the recorded waveform \ should be removed Change-Id: Ic268999141ae9c291ec2984304f1242b6e0a91ed Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/adhd/+/1832956 Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org> Reviewed-by: Curtis Malainey <cujomalainey@chromium.org> Tested-by: Judy Hsiao <judyhsiao@chromium.org> Commit-Queue: Judy Hsiao <judyhsiao@chromium.org>
-rw-r--r--cras/src/dsp/dcblock.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/cras/src/dsp/dcblock.c b/cras/src/dsp/dcblock.c
index c6b90c14..53ba9412 100644
--- a/cras/src/dsp/dcblock.c
+++ b/cras/src/dsp/dcblock.c
@@ -14,6 +14,7 @@ struct dcblock {
float y_prev;
float ramp_factor;
float ramp_increment;
+ int initialized;
};
struct dcblock *dcblock_new(float R, unsigned long sample_rate)
@@ -37,6 +38,11 @@ void dcblock_process(struct dcblock *dcblock, float *data, int count)
float y_prev = dcblock->y_prev;
float R = dcblock->R;
+ if (!dcblock->initialized) {
+ x_prev = data[0];
+ dcblock->initialized = 1;
+ }
+
for (n = 0; n < count; n++) {
float x = data[n];
float d = x - x_prev + R * y_prev;