This document describes the Low Level L2 Test Specification and Procedure for the Device Settings Video Device module.
HAL
- Hardware Abstraction Layer, may include some common componentsUT
- Unit Test(s)OEM
- Original Equipment ManufactureSoC
- System on a ChipHDR
- High Dynamic Range
ut-core
- Common Testing Framework https://github.com/rdkcentral/ut-core, which wraps a open-source framework that can be expanded to the requirements for future framework.
- High Level Test Specification ds-video-device_High-Level_TestSpec.md
- dsVideoDevice
HAL
Interface - dsVideoDevice.h
The following functions are expecting to test the module operates correctly.
Title | Details |
---|---|
Function Name | test_l2_dsVideoDevice_SetAndGetDFC_source |
Description | Loop through each supported video device and the zoom mode can be set using dsVideoDevice/Device/[Device Number]/SupportedDFCs field of configuration file and verify using get |
Test Group | 02 |
Test Case ID | 001 |
Priority | High |
Pre-Conditions None
Dependencies None
User Interaction If user chose to run the test in interactive mode, then the test case has to be selected via console.
Variation / Steps | Description | Test Data | Expected Result | Notes |
---|---|---|---|---|
01 | Initialize video device using dsVideoDeviceInit |
None | dsERR_NONE |
Should be successful |
02 | Get video device handle using dsGetVideoDevice |
index = 0 to dsVideoDevice/NumVideoDevices from profile file |
dsERR_NONE |
Should be successful |
03 | Loop through each supported video device and set the zoom mode using dsSetDFC |
handle = obtained handle, dfc = dsVideoDevice/Device/[Device Number]/SupportedDFCs of configuration file |
dsERR_NONE |
Should be successful |
04 | Verify the set zoom mode using dsGetDFC |
handle = obtained handle, dfc_get = buffer to get dfc | dsERR_NONE , dfc_get = dfc |
Should be successful |
05 | Terminate video device using dsVideoDeviceTerm |
None | dsERR_NONE |
Should be successful |
graph TB
A[dsVideoDeviceInit] -->|dsERR_NONE|B{Loop through <br> each video device}
A -->|Failure|A1[Test case fail]
B -->|dsERR_NONE|C[ dsGetVideoDevice]
C --> D[Set various zoom mode from <br> configuration file - dsSetDFC]
D -->|dsERR_NONE|E[Verify zoom mode -<br> dsGetDFC]
E -->|dsERR_NONE, <br> Zoom mode matches|B
E -->|!dsERR_NONE, <br> Zoom mode doesn't match|E1[Test case fail]
E1 --> B
B -->|End of loop|F[ dsVideoDeviceTerm]
F -->|dsERR_NONE|G[Test case success]
F -->|Failure|F1[Test case fail]
Title | Details |
---|---|
Function Name | test_l2_dsVideoDevice_GetHDRCapabilities |
Description | Loop through each supported video device and Get the HDR capabilities for each video device and verify with the configuration file |
Test Group | 02 |
Test Case ID | 002 |
Priority | High |
Pre-Conditions None
Dependencies None
User Interaction If user chose to run the test in interactive mode, then the test case has to be selected via console.
Variation / Steps | Description | Test Data | Expected Result | Notes |
---|---|---|---|---|
01 | Initialize the video device using dsVideoDeviceInit |
None | dsERR_NONE |
Should be successful |
02 | Loop through each video device using dsGetVideoDevice |
index = 0 to dsVideoDevice/NumVideoDevices from configuration file, handle = valid pointer |
dsERR_NONE |
Should be successful |
03 | Get the HDR capabilities for each video device using dsGetHDRCapabilities |
handle = obtained from previous step, capabilities = valid pointer | dsERR_NONE |
Should be successful |
04 | Verify the obtained HDR capabilities with the configuration file |
capabilities = obtained from previous step, configuration field = dsVideoDevice/Device/[Device Number]/HDRCapabilities |
Value should match with the configuration file | Should be successful |
05 | Terminate the video device using dsVideoDeviceTerm |
None | dsERR_NONE |
Should be successful |
graph TB
A[dsVideoDeviceInit] -->|dsERR_NONE|B{Loop through each <br> supported video device}
B -->|dsERR_NONE and valid handle|C[dsGetVideoDevice]
C -->|dsERR_NONE and valid capabilities|D[dsGetHDRCapabilities]
D -->|Verify HDR capabilities|E{End of loop}
D -->|Verify HDR capabilities Fail|D1[Test case fail]
D1 --> E
E --> B
E -->|dsERR_NONE|F[dsVideoDeviceTerm]
F --> G[Test case success]
A -->|Failure|H[Test case fail]
F -->|Failure|J[Test case fail]
Title | Details |
---|---|
Function Name | test_l2_dsVideoDevice_GetSupportedVideoCodingFormats |
Description | Loop through each supported video device and get the Video coding format for each video device and verify it with the Configuration file |
Test Group | 02 |
Test Case ID | 003 |
Priority | High |
Pre-Conditions None
Dependencies None
User Interaction If user chose to run the test in interactive mode, then the test case has to be selected via console.
Variation / Steps | Description | Test Data | Expected Result | Notes |
---|---|---|---|---|
01 | Initialize the video device using dsVideoDeviceInit |
None | dsERR_NONE |
Should be successful |
02 | Loop through each video device using dsGetVideoDevice |
index = 0 to dsVideoDevice/NumVideoDevices from the configuration file |
dsERR_NONE |
Should be successful |
03 | Get the supported video coding formats for each device using dsGetSupportedVideoCodingFormats |
handle = obtained from dsGetVideoDevice |
dsERR_NONE |
Should be successful |
04 | Verify the obtained supported formats with the configuration file | supported_formats = from previous step, configuration field = dsVideoDevice/Device/[Device Number]/SupportedVideoCodingFormats |
dsERR_NONE |
Should be successful |
05 | Terminate the video device using dsVideoDeviceTerm |
None | dsERR_NONE |
Should be successful |
graph TB
A[Call dsVideoDeviceInit] -->|dsERR_NONE|B{Loop through each <br> supported video device}
A -->|Failure|A1[Test case fail]
B --> C[Call dsGetVideoDevice for each device]
C -->|dsERR_NONE and <br> handle is valid|D[Call dsGetSupportedVideoCodingFormats <br>for each device]
D -->|dsERR_NONE and <br> supported_formats is valid|E[Verify supported_formats <br> with configuration file]
E -->|Match|B
E -->|No Match|E1[Test case fail]
E1 --> B
B -->|End of loop|F[Call dsVideoDeviceTerm]
F -->|dsERR_NONE|G[Test case success]
F -->|Failure|F1[Test case fail]
Title | Details |
---|---|
Function Name | test_l2_dsVideoDevice_GetVideoCodecInfo_source |
Description | Loop through each supported video device and get Video codec information for each video device and verify the with configuration file |
Test Group | 02 |
Test Case ID | 004 |
Priority | High |
Pre-Conditions None
Dependencies None
User Interaction If user chose to run the test in interactive mode, then the test case has to be selected via console.
Variation / Steps | Description | Test Data | Expected Result | Notes |
---|---|---|---|---|
01 | Initialize the video device using dsVideoDeviceInit |
None | dsERR_NONE |
Should be successful |
02 | Loop through each supported video device using dsGetVideoDevice |
index = 0 to dsVideoDevice/NumVideoDevices from the configuration file |
dsERR_NONE |
Should be successful |
03 | Get Video codec information for each video device using dsGetVideoCodecInfo |
handle = handle from dsGetVideoDevice , codec = codec |
dsERR_NONE |
Should be successful |
04 | Verify the obtained Video codec information with configuration file | num_entries = dsVideoDevice/Device/[Device Number]/VideoCodecInfo/num_entries , level = dsVideoDevice/Device/[Device Number]/VideoCodecInfo/VideoCodec[number]/level , profile = dsVideoDevice/Device/[Device Number]/VideoCodecInfo/VideoCodec[number]/profile |
dsERR_NONE |
Should be successful |
05 | Terminate the video device using dsVideoDeviceTerm |
None | dsERR_NONE |
Should be successful |
graph TB
A[Call dsVideoDeviceInit] -->|dsERR_NONE|B{Loop through each <br>supported video device}
A -->|Failure|A1[Test case fail]
B -->|dsERR_NONE and valid handle|C[Call dsGetVideoCodecInfo with handle]
C -->|dsERR_NONE and info structure populated|D[Verify video codec info <br> with profile file]
D -->|Success|B
D -->|Fail|D1[Test case fail]
D1 --> B
B -->|End of loop|F[Call dsVideoDeviceTerm]
F -->|dsERR_NONE|G[Test case success]
F -->|Failure|F1[Test case fail]
Title | Details |
---|---|
Function Name | test_l2_dsVideoDevice_SetAndVerifyDisplayframerate_sink |
Description | Loop through each supported video device and Set the supported display frame rate for each video device using configuration file and verify using get |
Test Group | 02 |
Test Case ID | 005 |
Priority | High |
Pre-Conditions None
Dependencies None
User Interaction If user chose to run the test in interactive mode, then the test case has to be selected via console.
Variation / Steps | Description | Test Data | Expected Result | Notes |
---|---|---|---|---|
01 | Initialize video device using dsVideoDeviceInit |
None | dsERR_NONE |
Should be successful |
02 | Get video device handle using dsGetVideoDevice with index 0 , Loop through each supported video device |
index = 0 to dsVideoDevice/NumVideoDevices from the configuration file, handle = valid pointer |
dsERR_NONE |
Should be successful |
03 | Set the supported display frame rate for each video device using dsSetDisplayframerate |
handle = obtained handle, framerate = dsVideoDevice/Device/[Device Number]/SupportedDisplayframerate |
dsERR_NONE | Should be successful |
04 | Verify the set frame rate using dsGetCurrentDisplayframerate |
handle = obtained handle, framerate = valid pointer | dsERR_NONE |
Should be successful |
05 | Terminate video device using dsVideoDeviceTerm |
None | dsERR_NONE |
Should be successful |
graph TB
A[Call dsVideoDeviceInit] -->|dsERR_NONE|B{Loop through each <br> supported video device}
A -->|Failure|A1[Test case fail]
B --> D[Read supported display frame <br> rate from profile file]
D --> E[Call dsSetDisplayframerate <br> with handle and frame rate]
E -->|dsERR_NONE|F[Call dsGetCurrentDisplayframerate ]
F -->|dsERR_NONE and frame rate matches|B
F --> |!dsERR_NONE and frame rate doesn't match|F1[Test case fail]
F1 --> B
B -->|End of loop|H[Call dsVideoDeviceTerm]
H -->|dsERR_NONE|I[Test case pass]
H -->|Failure|H1[Test case fail]
Title | Details |
---|---|
Function Name | test_l2_dsVideoDevice_SetAndVerifyFRFMode_sink |
Description | Loop through each supported video device and Set the display frame rate mode for each video device and verify using get |
Test Group | 02 |
Test Case ID | 006 |
Priority | High |
Pre-Conditions None
Dependencies None
User Interaction If user chose to run the test in interactive mode, then the test case has to be selected via console.
Variation / Steps | Description | Test Data | Expected Result | Notes |
---|---|---|---|---|
01 | Initialize video device using dsVideoDeviceInit |
None | dsERR_NONE |
Should be successful |
02 | Get video device handle using dsGetVideoDevice with index 0 , Loop through each supported video device |
index = 0 to dsVideoDevice/NumVideoDevices from the configuration file, handle = valid pointer |
dsERR_NONE |
Should be successful |
03 | Set the frame rate mode for each video device using dsSetFRFMode |
handle = obtained handle, frfMode = 0 and 1 | dsERR_NONE | Should be successful |
04 | Verify the set frame rate mode using dsGetFRFMode |
handle = obtained handle, frfMode = valid intiger pointer | dsERR_NONE |
Should be successful |
05 | Terminate video device using dsVideoDeviceTerm |
None | dsERR_NONE |
Should be successful |
graph TB
A[Call dsVideoDeviceInit] -->|dsERR_NONE|B{Loop through each <br> supported video device}
A -->|Failure|A1[Test case fail]
B --> E[Call dsSetFRFMode with handle and frfMode 0 and 1]
E -->|dsERR_NONE|F[Call dsGetFRFMode ]
F -->|dsERR_NONE and frfMode matches|B
F --> |!dsERR_NONE and frfMode doesn't match|F1[Test case fail]
F1 --> B
B -->|End of loop|H[Call dsVideoDeviceTerm]
H -->|dsERR_NONE|I[Test case pass]
H -->|Failure|H1[Test case fail]