From 0dd3b9bf70e15fcafdaccf5970084b4f4ddc4adf Mon Sep 17 00:00:00 2001 From: Andrea Bondavalli Date: Wed, 19 Apr 2023 12:49:47 +0200 Subject: [PATCH] Set of changes to the daemon to support additional sample rates and to enhance the test suites to verify with 192Khz and 384Khz The build script has been modified to checkout the driver branch aes67-daemon-issue11 with fixes to support sample rates higher than 192Khz. These changes fix #124 and #122 --- build.sh | 2 +- run_latency_test.sh | 8 ++++++-- run_test.sh | 6 +++++- test/createtest.cc | 2 +- test/daemon.conf | 2 +- test/latency.cc | 4 ++-- webui/src/Config.jsx | 2 ++ 7 files changed, 18 insertions(+), 8 deletions(-) diff --git a/build.sh b/build.sh index 1ead070..298202c 100755 --- a/build.sh +++ b/build.sh @@ -11,7 +11,7 @@ TOPDIR=$(pwd) cd 3rdparty if [ ! -d ravenna-alsa-lkm ]; then - git clone --single-branch --branch aes67-daemon https://github.com/bondagit/ravenna-alsa-lkm.git + git clone --single-branch --branch aes67-daemon-issue11 https://github.com/bondagit/ravenna-alsa-lkm.git cd ravenna-alsa-lkm/driver make cd ../.. diff --git a/run_latency_test.sh b/run_latency_test.sh index 8e23e33..1938201 100755 --- a/run_latency_test.sh +++ b/run_latency_test.sh @@ -13,9 +13,9 @@ function cleanup { } function usage { - echo 'Usage run_latenvy_test.sh sample_format sample_rate channels duration frames' >&2 + echo 'Usage run_latency_test.sh sample_format sample_rate channels duration frames' >&2 echo ' sample_format can be one of S16_LE, S24_3LE, S32_LE' >&2 - echo ' sample_rate can be one of 44100, 48000, 96000' >&2 + echo ' sample_rate can be one of 44100, 48000, 96000, 192000, 384000' >&2 echo ' channels can be one of 2, 4, 6, up to 64' >&2 echo ' duration in seconds' >&2 echo ' frames buffer size in frames' >&2 @@ -85,6 +85,10 @@ elif [ $SAMPLE_RATE == "48000" ]; then PTIME="1" elif [ $SAMPLE_RATE == "96000" ]; then PTIME="0.5" +elif [ $SAMPLE_RATE == "192000" ]; then + PTIME="0.25" +elif [ $SAMPLE_RATE == "384000" ]; then + PTIME="0.125" else usage fi diff --git a/run_test.sh b/run_test.sh index 72d60ed..bcdac37 100755 --- a/run_test.sh +++ b/run_test.sh @@ -45,7 +45,7 @@ echo 'Creating test file ...' >&2 if ! ./createtest $1 $2 $3 $4 ; then echo 'Usage run_test.sh sample_format sample_rate channels duration' >&2 echo ' sample_format can be one of S16_LE, S24_3LE, S32_LE' >&2 - echo ' sample_rate can be one of 44100, 48000, 96000' >&2 + echo ' sample_rate can be one of 44100, 48000, 96000, 192000, 384000' >&2 echo ' channels can be one of 2, 4, 6, up to 64' >&2 echo ' duration is in the range 1 to 10 minutes' >&2 exit 1 @@ -74,6 +74,10 @@ elif [ $SAMPLE_RATE == "48000" ]; then PTIME="1" elif [ $SAMPLE_RATE == "96000" ]; then PTIME="0.5" +elif [ $SAMPLE_RATE == "192000" ]; then + PTIME="0.25" +elif [ $SAMPLE_RATE == "384000" ]; then + PTIME="0.125" fi SOURCE=$(cat <<-END diff --git a/test/createtest.cc b/test/createtest.cc index c2370d7..1011103 100644 --- a/test/createtest.cc +++ b/test/createtest.cc @@ -25,7 +25,7 @@ int main(int argc, char* argv[]) } int rate(atoi(argv[2])); - if (rate != 44100 && rate != 48000 && rate != 96000) { + if (rate != 44100 && rate != 48000 && rate != 96000 && rate != 192000 && rate != 384000) { cerr << "Unsupported rate " << rate << endl; exit(1); } diff --git a/test/daemon.conf b/test/daemon.conf index bf88a92..bec67fe 100644 --- a/test/daemon.conf +++ b/test/daemon.conf @@ -4,7 +4,7 @@ "http_base_dir": "./webui/dist", "log_severity": 3, "playout_delay": 0, - "tic_frame_size_at_1fs": 64, + "tic_frame_size_at_1fs": 48, "max_tic_frame_size": 1024, "sample_rate": 48000, "rtp_mcast_base": "239.1.0.1", diff --git a/test/latency.cc b/test/latency.cc index 5b590e7..251a53a 100644 --- a/test/latency.cc +++ b/test/latency.cc @@ -583,7 +583,7 @@ int main(int argc, char *argv[]) break; case 'r': err = atoi(optarg); - rate = err >= 4000 && err < 200000 ? err : 44100; + rate = err >= 4000 && err < 400000 ? err : 44100; break; case 'B': err = atoi(optarg); @@ -624,7 +624,7 @@ int main(int argc, char *argv[]) loop_limit = loop_sec * rate; latency = latency_min - 4; - buffer = (char*)malloc((latency_max * 2 * snd_pcm_format_width(format) / 8) * channels); + buffer = (char*)malloc((latency_max * 4 * snd_pcm_format_width(format) / 8) * channels); setscheduler(); diff --git a/webui/src/Config.jsx b/webui/src/Config.jsx index 99af251..91b12f9 100644 --- a/webui/src/Config.jsx +++ b/webui/src/Config.jsx @@ -186,6 +186,8 @@ class Config extends Component { + +