Update README.md
This commit is contained in:
parent
c5e72e5d47
commit
6deea0a19f
67
README.md
67
README.md
@ -168,7 +168,7 @@ The test performs the following operations:
|
|||||||
* wait for the recording and the playback to complete
|
* wait for the recording and the playback to complete
|
||||||
* check that the recorded file contains the expected audio samples sequence
|
* check that the recorded file contains the expected audio samples sequence
|
||||||
* terminate ptp4l and the AES67 daemon
|
* terminate ptp4l and the AES67 daemon
|
||||||
* print the test result that can be either *OK" or *failed at (location)*
|
* print the test result that can be either *OK* or *failed at (location)*
|
||||||
|
|
||||||
|
|
||||||
If the test result is OK it means that the selected configuration can run smoothly on your platform.
|
If the test result is OK it means that the selected configuration can run smoothly on your platform.
|
||||||
@ -179,6 +179,71 @@ In this case you may try to configure a different driver timer basic tick period
|
|||||||
By default this parameter is set to 48 (1ms latency) and the valid range is from 48 to 480 with steps of 48.
|
By default this parameter is set to 48 (1ms latency) and the valid range is from 48 to 480 with steps of 48.
|
||||||
Note that higher values of this parameter (values above 48) lead to higher packets processing latency and this breaks the compatibility with certain devices.
|
Note that higher values of this parameter (values above 48) lead to higher packets processing latency and this breaks the compatibility with certain devices.
|
||||||
|
|
||||||
|
## Run the platform latency test ##
|
||||||
|
<a name="latency"></a>
|
||||||
|
The platform latency test can be used to measure the minimum end-to-end latency that can be achieved on a specific platform.
|
||||||
|
|
||||||
|
The test is based on the same setup used for the platform compatibility test where a _Sink_ is configured to receive audio samples from a _Source_
|
||||||
|
both running on the same device using the network loopback interface.
|
||||||
|
|
||||||
|
A test application plays audio samples on the RAVENNA playback device and measures the time till the samples are received on the RAVENNA capture device.
|
||||||
|
|
||||||
|
The test setup and the end-to-end latency measured are shown in the picture below:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The test can be executed using the [run\_latency\_test.sh](run_latency_test.sh) script. See [script notes](#notes).
|
||||||
|
|
||||||
|
The script allows a user to test the latency on a specific configuration and it can be used to ensure that a specific ALSA buffer size can be used:
|
||||||
|
|
||||||
|
Usage run_latency_test.sh sample_format sample_rate channels duration frames
|
||||||
|
sample_format can be one of S16_LE, S24_3LE, S32_LE
|
||||||
|
sample_rate can be one of 44100, 48000, 96000
|
||||||
|
channels can be one of 1, 2, 4
|
||||||
|
duration of the test in seconds
|
||||||
|
frames buffer size in frames
|
||||||
|
|
||||||
|
The specified buffer size in frames starts from _tic_frame_size_at_1fs_ * 2 (128 by default) in steps of _tic_frame_size_at_1fs_.
|
||||||
|
|
||||||
|
For example, to test the typical AES67 configuration for 1 minute and a buffer size of 128 frames run:
|
||||||
|
|
||||||
|
./run_test.sh S24_3LE 48000 2 60 128
|
||||||
|
|
||||||
|
If no underrun errors occurred during the test the requested buffer size can be used and the end-to-end latency measured is printed at the end:
|
||||||
|
|
||||||
|
Trying latency 128 frames, 2666.667us, 2.666667ms (375.0000Hz)
|
||||||
|
Success
|
||||||
|
Playback:
|
||||||
|
*** frames = 2880128 ***
|
||||||
|
state : RUNNING
|
||||||
|
trigger_time: 157745.455411
|
||||||
|
tstamp : 0.000000
|
||||||
|
delay : 128
|
||||||
|
avail : 0
|
||||||
|
avail_max : 64
|
||||||
|
Capture:
|
||||||
|
*** frames = 2880000 ***
|
||||||
|
state : RUNNING
|
||||||
|
trigger_time: 157745.455415
|
||||||
|
tstamp : 0.000000
|
||||||
|
delay : 0
|
||||||
|
avail : 0
|
||||||
|
avail_max : 64
|
||||||
|
Maximum read: 64 frames
|
||||||
|
Maximum read latency: 1333.333us, 1.333333ms (750.0000Hz)
|
||||||
|
Playback time = 157745.455411, Record time = 157745.455415, diff = -4
|
||||||
|
End to end latency: 7.997 msecs
|
||||||
|
Terminating processes ...
|
||||||
|
daemon exiting with code: 0
|
||||||
|
|
||||||
|
The previous test was run on a _NanoPi NEO2 board_ with Ubuntu distro.
|
||||||
|
|
||||||
|
In case underrun happened the status reported is:
|
||||||
|
|
||||||
|
state : XRUN
|
||||||
|
|
||||||
|
and the specified buffer size cannot be used.
|
||||||
|
|
||||||
## Run the daemon regression tests ##
|
## Run the daemon regression tests ##
|
||||||
To run daemon regression tests install the ALSA RAVENNA/AES67 kernel module with:
|
To run daemon regression tests install the ALSA RAVENNA/AES67 kernel module with:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user