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 | ||||
| * check that the recorded file contains the expected audio samples sequence | ||||
| * 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. | ||||
| @ -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. | ||||
| 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 ## | ||||
| To run daemon regression tests install the ALSA RAVENNA/AES67 kernel module with: | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user