-
Epic
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
-
Integrate virtual camera to QtMM CI tests
-
Goal
Run multimedia camera integration tests (tst_qcamerabackend) on CI.
For this purpose, we need to install virtual camera command line software on CI (by provisioning scripts).
Steps:
1. Investigate which options of virtual camera command line software we have. Ideally, the same tool should be used on different platforms. If it's not possible, it should have the required functionality set.
The cmd-line software should:
- be able to add a virtual camera with configured format, fps, stream (image or video)
Example:./virt_cam -add -name MyCamera -supported_fps=30,45,60 -supported_resolutions=1280x720,640x480 -supported_pix_formats=nv12,jpeg -stream=myimage.png
If it's not possible to propagate all of the settings, the minimum requirement is just specifying an image+fps for the camera so that it can detect resolution and populate the image in frames according to fps in any available pix format.
- be able to add a virtual camera with configured format, fps, stream (image or video)
Example:./virt_cam -add \ -name MyCamera -supported_fps=30,45,60 \ -supported_resolutions=1280x720,640x480 \ -front_camera=false \ -stream=myimage.png
- be able to remove the added virtual camera.
Example:./virt_cam -remove -name MyCamera
- It the software has specific license agreements, it should comply with licensing policies for CI; TODO: check with the CI team the policies.
2. Install the most suitable sw on CI (by provisioning scripts).
3. Integrate the running of adding/removing cameras to multimedia tests.
It can be functions isVirtCameraUtilInstalled(), addVirtualCamera(settings) removeVirtualCamera(name)
isVirtCameraUtilInstalled() addVirtualCamera(settings) removeVirtualCamera(name)
or smth like that. e.g. class, whatever. The functions are supposed to invoke the cmd-line under the hood and encapsulate platform-specific and tool-specific details.