Audio Settings L3 Low Level Test Specification and Procedure Documentation
Acronyms, Terms and Abbreviations
HAL
- Hardware Abstraction LayerAPI
- Application Programming InterfaceL2
- Level 2 TestingL3
- Level 3 TestingDS
- Device SettingsARC
- Audio Return ChannelHDMI
- High-Definition Multimedia InterfaceLE
- Loudness EquivalenceDRC
- Dynamic Range ControlMI
- Media IntelligentMS12
- MultiStream 12MS11
- MultiStream 11DAP
- Digital Audio ProcessingPCM
- Pulse Code ModulationWAV
- WaveformDUT
- Device Under TestNA
- Not ApplicableRAFT
- Rapid Automation Framework for Testing
Overview
This document describes the L3 Test Procedure for the Device Settings Audio module.
References
- dsAudio HAL Interface - dsAudio.h
- High Level Test Specification - ds-audio_High-Level_TestSpecification.md
Audio Streams Requirement
# | Stream Name | Description |
---|---|---|
01 | tones_string_48k_stereo.ac3 | AC3 format audio with tones (single notes) across various frequencies |
02 | Dolby_stream_supports_Dialogue_Enhancer | AC4 format audio with speech frequencies, designed to test the dialogue enhancer feature |
03 | music_8k_stereo.ac3 | AC3 format audio with music, used to test features like the equalizer |
04 | tone_500Hz_compress_48k_stereo.ac3 | AC3 format with a 500Hz tone, which alternates between two volume levels (-25dB and -5dB), useful for compression and dynamic range testing |
05 | tone_bassrange_150Hz_48k_stereo.ac3 | AC3 format with a 150Hz tone at -10dB |
06 | Dolby_atmos_stream_supports_surround_mode | Dolby AC4 , EAC3_ATMOS , and AC4_ATMOS formats to test surround sound mode |
07 | tones_string_48k_stereo.wav | WAV (PCM ) format with tones across various frequencies |
08 | tones_string_48k_stereo.eac3 | EAC3 format with tones across various frequencies |
09 | tones_string_48k_stereo.aac | AAC format with tones across various frequencies |
10 | tones_string_48k_stereo.ogg | VORBIS format with tones across various frequencies |
11 | tones_string_48k_stereo.wma | WMA format with tones across various frequencies |
12 | Audio_supports_MAT_format | Dolby MAT format |
13 | Dolby_audio_supports_TRUEHD_format | Dolby TRUEHD format |
14 | DolbyDigitalPlus_atmos_audio | Dolby EAC3_ATMOS format |
15 | TRUEHD_atmos_audio | Dolby TRUEHD_ATMOS format |
16 | MAT_atmos_audio | Dolby MAT_ATMOS format |
17 | Dolby_atmos_audio | Dolby AC4_ATMOS format |
18 | Dolby_stream_supports_AVsync | Dolby stream specifically designed to test AV synchronization |
19 | Dolby_stream_supports_Multi-Language | AC4 format with three language tracks (Chinese, English, and Spanish) and additional audio options, used to test multi-language audio capabilities |
20 | primary_audio_48k_2ch.ac3 | AC3 format with two-channel audio (stereo) containing dialogue |
21 | system_audio_48k_2ch.wav | WAV (PCM ) format with two-channel audio containing dialogue |
Level 3 Test Cases High Level Overview
Below are top test use-case for the audio port.
# | Test-case | Description | HAL APIs | Source | Sink | Streams Number |
---|---|---|---|---|---|---|
1 | Enable/disable audio ports | Play the predefined audio streams. Iterate through the supported audio ports, enabling or disabling them, and check if the stream is being played through each port | dsEnableAudioPort() |
Y |
Y |
01 |
2 | Verify the Headphone connection status | Enable the headphone port and verify the connection status by disconnecting and reconnecting the port. Additionally, confirm if the callback is triggered | dsAudioOutIsConnected() |
N |
Y |
NA |
3 | Verify MS12 Audio Compression | Loop through the ports which supports Audio Compression and verify | dsSetAudioCompression() |
Y |
Y |
01 |
4 | Verify MS12 DAP Dialog enhancement |
Loop through the ports which supports MS12 DAP Capabilities and verify Dialog enhancement |
dsSetDialogEnhancement() |
Y |
Y |
02 |
5 | Verify MS12 DAP Dolby Volume mode |
Loop through the ports which supports MS12 DAP Capabilities and verify Dolby Volume mode |
dsSetDolbyVolumeMode() |
Y |
Y |
01 |
6 | Verify MS12 DAP Intelligent Equalizer |
Loop through the ports which supports MS12 DAP Capabilities and verify the Intelligent Equalizer |
dsSetIntelligentEqualizerMode() |
Y |
Y |
03 |
7 | Verify MS12 DAP Volume leveller |
Loop through the ports which supports MS12 DAP Capabilities and verify Volume leveller |
dsSetVolumeLeveller() |
Y |
Y |
04 |
8 | Verify MS12 DAP Bass enhancer |
Loop through the ports which supports MS12 DAP Capabilities and verify Bass enhancer |
dsSetBassEnhancer() |
Y |
Y |
05 |
9 | Verify MS12 DAP Surround Decoder |
Loop through the ports which supports MS12 DAP Capabilities and verify Surround Decoder |
dsEnableSurroundDecoder() |
Y |
Y |
06 |
10 | Verify MS12 DAP DRC Mode |
Loop through the ports which supports MS12 DAP Capabilities and verify DRC Mode |
dsSetDRCMode() |
Y |
Y |
04 |
11 | Verify MS12 DAP Surround Virtualizer |
Loop through the ports which supports MS12 DAP Capabilities and verify Surround Virtualizer |
dsSetSurroundVirtualizer() |
Y |
Y |
06 |
12 | Verify MS12 DAP MI Steering |
Loop through the ports which supports MS12 DAP Capabilities and verify MI Steering |
dsSetMISteering() |
Y |
Y |
01 |
13 | Verify MS12 DAP Graphics Equalizer |
Loop through the ports which supports MS12 DAP Capabilities and verify Graphics Equalizer |
dsSetGraphicEqualizerMode() |
Y |
Y |
01 |
14 | Verify MS12 DAP LE Config |
Loop through the ports which supports MS12 DAP Capabilities and verify LE Config |
dsEnableLEConfig() |
Y |
Y |
04 |
15 | Test ARC Port |
Enable the ARC port, retrieve the connected device's capabilities, and verify them |
dsGetSupportedARCTypes() |
N |
Y |
NA |
16 | Test ARC Port SAD |
Enable the ARC port, set the set the SAD and verify |
dsAudioSetSAD() |
N |
Y |
NA |
17 | Test output mode | Play the predefined audio streams. Iterate through the audio ports which supports stereo modes, set various stereo modes and verify | dsSetStereoMode() |
Y |
Y |
01, 07, 08 |
18 | Test Audio Level | Play the predefined audio streams. Iterate through the audio ports, set the gain and verify | dsSetAudioLevel() |
N |
Y |
01 |
19 | Test Audio Gain | Play the predefined audio streams. set the gain for Speaker port and verify | dsSetAudioGain() |
N |
Y |
01 |
20 | Test Audio Mute | Play the predefined audio streams. Iterate through the audio ports, set the Mute, Un-mute and verify | dsSetAudioMute() |
Y |
Y |
01 |
21 | Test Audio Delay | Play the predefined audio streams. Iterate through the audio ports, set the delay and verify | dsSetAudioDelay() |
Y |
Y |
18 |
22 | Test Audio Format | Play the predefined audio streams. verify the audio format using API . Additionally, confirm if the callback is triggered |
dsGetAudioFormat() |
Y |
Y |
01, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17 |
23 | Test Associated Audio Mixing | Play the predefined audio streams. Set the mixer levels and verify | dsSetAssociatedAudioMixing() , dsSetFaderControl() |
Y |
Y |
19 |
24 | Test Primary/Secondary Language | Play the predefined audio streams. Set the primary and secondary languages and verify | dsSetPrimaryLanguage() , dsSetSecondaryLanguage() |
Y |
Y |
19 |
25 | Test Audio Mixer Levels | Play the predefined audio streams. Set the mixer levels for primary and system audio and verify | dsSetAudioMixerLevels() |
N |
Y |
20, 21 |
26 | Test MS12 Audio Profiles | Play the predefined audio streams. Set the MS12 profiles and verify | dsSetMS12AudioProfile() |
N |
Y |
03 |
Level 3 Python Test Cases High Level Overview
The class diagram below illustrates the flow of dsAudio L3 Python test cases:
---
title: dsAudio - Python Class Flow
---
classDiagram
testControl <|-- ut_raft : inherits
class ut_raft{
}
ut_raft <|-- dsAudioHelperClass : inherits
dsAudioHelperClass <|-- L3_TestClasses : inherits
L3_TestClasses ..> dsAudio : uses
note for testControl "uses rackConfig.yaml and deviceConfig.yaml"
note for dsAudio "uses platformProfile.yaml"
note for L3_TestClasses "uses testSetupConfig.yaml"
note for ut_raft "suite Navigator uses testSuite.yaml"
- testControl
- Test Control Module for running rack Testing. This module configures the
DUT
based on the rack configuration file provided to the test. - This class is defined in
RAFT
framework. For more details refer RAFT - ut_raft
- Python based testing framework for writing engineering tests.
- It provides common functionalities like menu navigation, configuration reader, reading user response etc.
- For more details ut-raft.
- dsAudio
- This is test helper class which communicates with the
L3
C/C++ test running on theDUT
through menu - L3_TestClasses
- These are the L3 test case classes
- Each class covers the each test use-case defined in L3 Test use-cases table
YAML File Inputs
- rackConfig.yaml
- Identifies the rack configuration and platform used
- References platform-specific config from
deviceConfig.yaml
-
For more details refer RAFT and example_rack_config.yml
-
deviceConfig.yaml
- Specifies overall configuration for the platform
- Can be overridden by:
- Changing locally .yaml file directory
- Using --deviceConfig command line switch
-
For more details refer RAFT and example_device_config.yml
-
componentProfile.yaml/platformProfile.yaml
- Contains component-specific configurations
- Contains platform wide configuration broken down into separate components
-
Example configuration file dsAudio_Settings
-
testSetupConfig.yaml
- This configuration file contains the list of requirements for tests to execute. Eg: Copying the streams, setting environment variables etc.
-
Example configuration file dsAudio_L3_testSetup.yml
-
testConfig.yaml
- This configuration file contains the list of menu items for C/C++ L3 test running on
DUT
- Example configuration file dsAudio_test_suite.yml