From 36bdd720aa3ff11bede9efc5b630e4f8a7f5ea02 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Wed, 22 May 2013 15:59:24 +0530 Subject: [PATCH] tests: Adjust latency test calibration This makes the test more robust by: 1. Decreasing the '1' threshold during calibration - the RMS value for the sine wave will be 0.5, so the previous code was making us take the ALSA mixer past 0dB. 2. Using the difference rather than absolute value for 0->1 transitions, so that we're somewhat independent noise in our calculations. --- src/tests/lo-latency-test.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tests/lo-latency-test.c b/src/tests/lo-latency-test.c index c22affcae..8f3b04d4d 100644 --- a/src/tests/lo-latency-test.c +++ b/src/tests/lo-latency-test.c @@ -158,7 +158,7 @@ static void read_cb(pa_stream *s, size_t nbytes, void *userdata) { * straddle the 0->1 transition, raising the average power. We keep the * definition of 1 tight in this case and detect the transition in the * next round. */ - if (last < 0.5f && cur > 0.8f) { + if (cur - last > 0.4f) { pa_gettimeofday(&tv_in); fprintf(stderr, "Latency %llu\n", (unsigned long long) pa_timeval_diff(&tv_in, &tv_out)); } @@ -234,8 +234,8 @@ static void calibrate_read_cb(pa_stream *s, size_t nbytes, void *userdata) { switch (cal_state) { case CALIBRATION_ONE: - /* Try to detect the sine wave */ - if (rms(in, nsamp) < 0.8f) { + /* Try to detect the sine wave. RMS is 0.5, */ + if (rms(in, nsamp) < 0.40f) { confirm = 0; v += 0.02f;