-
Bug
-
Resolution: Out of scope
-
P3: Somewhat important
-
None
-
5.5.1
-
None
-
Android
We have an open-source app with years of development that requires access to UVC capture cards that are verified compatible with android.
To call cameras we are using the following...
QList<QCameraInfo> cameras = QCameraInfo::availableCameras(); foreach (const QCameraInfo &cameraInfo, cameras) { if(cameraInfo.description() == vSource)
{ _videoSourceID = cameraInfo.deviceName(); emit videoSourceIDChanged(); qCDebug(VideoManagerLog) << "Found USB source:" << _videoSourceID << " Name:" << _videoSource; break; }}
This will of course list and use any onboard or USB camera but not UVC capture devices. The issue appears that perhaps QT is using a depreciated method to access camera and video devices. According to the android documentation found at https://developer.android.com/reference/android/hardware/Camera.html the API that should be used is camera2.
We are forced to use Qt version 5.5.1 but I noticed the issue persists in later versions on a simple camera app I wrote separate from the project.
Is there a workaround for this? if Android mounts the UVC device at anything other than /dev/video or /dev/camera our app will ignore the UVC capture device mounting at /dev/bus/usb/001/00n (n being any number).
We have tested the devices using the current APIs in Android Studio and with third-party software such as CameraFi and the UVC cards work flawlessly but since our app needs to run on Linux, Mac, Windows and Android we wish to stay with QT and do not wish to make special arrangements to build in a different environment just for Android.
Please advise if there is any way to work around this issue...