tests: Add a latency measurement test

This test is intended to measure real latency by playing a sample to a
sink and capturing that over a loopback interface. The loopback can
either be physical (cable running from headphone out to line in) or
virtual (monitor source or module loopback).

Also included in this is calibration code to make sure that volumes are
sufficiently adjusted to be able to detect the played back signal (and
that there aren't false positives due to line noise).

One of the objectives of all this is to later factor out the setup code
to allow us to easily write more loopback tests for various
functionality (volumes, resampling, mixing, etc.).
This commit is contained in:
Arun Raghavan 2013-05-21 18:39:30 +05:30
parent 50af14bd5b
commit 0862a281aa
2 changed files with 453 additions and 1 deletions

View file

@ -261,7 +261,8 @@ TESTS_norun = \
rtstutter \
sig2str-test \
stripnul \
echo-cancel-test
echo-cancel-test \
lo-latency-test
# These tests need a running pulseaudio daemon
TESTS_daemon = \
@ -574,6 +575,11 @@ echo_cancel_test_CXXFLAGS = $(module_echo_cancel_la_CXXFLAGS) -DECHO_CANCEL_TEST
endif
echo_cancel_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
lo_latency_test_SOURCES = tests/lo-latency-test.c
lo_latency_test_LDADD = $(AM_LDADD) libpulse.la
lo_latency_test_CFLAGS = $(AM_CFLAGS) $(LIBCHECK_CFLAGS)
lo_latency_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(LIBCHECK_LIBS)
###################################
# Common library #
###################################