This set of patches introduces the testbench for audio processing components in SOF. The testbench enables for functional/quality testing of the components. The testbench reads in audio samples from a file and write out the processed samples to the output file.
The src and test directories includes routines for topology parsing and setting up sof ipc, scheduler and processing pipelines. It also includes simpler implementations for SOF features such as tracing. It also includes a new file component that allows reading in or writing out samples from/to a file.
The test directory also includes the testbench for setting up pipelines based on a test topology. It reads in input samples from a file , schedules pipeline copy and copies the processed sample to the output file. The output file can be used to perform audio quality tests using matlab/octave. Currently it supports only volume pipelines. Support for other components such as src/eq will be added later.
v3 modifications: File component supports raw pcm input Fixed checkpatch style issues Fixed errors with 32-bit input samples debug message prints are handled via command line
Ranjani Sridharan (4): tune: add testbench common headers and source files tune: new component for file IO tune: add testbench to test topology tune: Add README and a script to configure testbench parameters
Makefile.am | 2 +- configure.ac | 4 +- tune/Makefile.am | 1 + tune/README | 13 + tune/scripts/run_testbench.sh | 22 + tune/src/include/test/common_test.h | 65 ++ tune/src/include/test/file.h | 77 +++ tune/src/include/test/topology.h | 202 ++++++ tune/src/include/test/trace.h | 49 ++ tune/test/Makefile.am | 31 + tune/test/alloc.c | 68 ++ tune/test/common_test.c | 206 ++++++ tune/test/file.c | 723 +++++++++++++++++++++ tune/test/ipc.c | 81 +++ tune/test/schedule.c | 99 +++ tune/test/testbench.c | 298 +++++++++ tune/test/topology.c | 955 ++++++++++++++++++++++++++++ tune/test/trace.c | 200 ++++++ 18 files changed, 3094 insertions(+), 2 deletions(-) create mode 100644 tune/Makefile.am create mode 100644 tune/README create mode 100755 tune/scripts/run_testbench.sh create mode 100644 tune/src/include/test/common_test.h create mode 100644 tune/src/include/test/file.h create mode 100644 tune/src/include/test/topology.h create mode 100644 tune/src/include/test/trace.h create mode 100644 tune/test/Makefile.am create mode 100644 tune/test/alloc.c create mode 100644 tune/test/common_test.c create mode 100644 tune/test/file.c create mode 100644 tune/test/ipc.c create mode 100644 tune/test/schedule.c create mode 100644 tune/test/testbench.c create mode 100644 tune/test/topology.c create mode 100644 tune/test/trace.c