Video Conferencing Device on Aikri-QCS610 Platform
eInfochips has developed a video conferencing demo solution using the Aikri-QCS610 platform, which enumerates as a UVC 1.5 camera device and a UAC 1.0 headset device on a Linux/Windows host machine via a USB interface. The UVC camera supports various encoding techniques with different resolutions. It also provides various camera controls on the host machine, while the UAC headset device enumerates its microphone and speaker capabilities with volume and mute controls.
The Aikri-QCS610 has a USB micro-B On-The-Go (OTG) connector. The USB port is configured in gadget mode with a composite configuration of UVC+UAC+DIAG+ADB. Due to the composite configuration on the Aikri-QCS610, multiple UVC video devices, a UAC PCM card with a dual channel, and ADB are enumerated on the host machine over a single USB bus.
The basic connection of the Aikri-QCS610 platform is as follows. For video, the camera module is connected to the Aikri-QCS610 platform using a CSI interface. For audio, the microphone is built-in, and the speaker is connected via a WSA amplifier. The Aikri-QCS610 platform is connected to the Linux/Windows host machine using a micro-B to Type-A USB cable.
Figure 1: Video Conferencing Device on Aikri-QCS610 Platform
The above image shows the actual setup of the video conferencing device with the Aikri-QCS610 platform. The IMX334 and IMX577 cameras are connected to the CSI interface of the Aikri-QCS610 platform. Both cameras are enumerated as UVC camera devices to the host machine over a single USB bus. Each UVC camera device supports control and video streaming descriptors with the UVC specification 1.5.
UVC stands for “USB Video Class”. A UVC device can transmit video over USB. When a user plugs a UVC device into the host, the configuration and enumeration of the UVC device at the host will be completed without any user interaction. UVC class-specific descriptors and data structures are used to complete the enumeration process. All the UVC class-specific descriptors and data structures are defined in the USB Video Class specification document, which is used to convey its capabilities to the host. The specification for UVC is published by the USB Implementers Forum, with two versions of the UVC specification – 1.1 and 1.5. A USB camera is an example of a UVC device.
UVC Camera device features supported by Aikri-QCS610 platform:
- Dual UVC camera support, each camera supports following features:
- Supported formats and resolutions
- YUYV
- 640×360@30/25/15/2 fps
- MJPEG
- 640×360@30/25/15/2 fps
- 1280×720@30/25/15/2 fps
- 1920×1080@30/25/15/2 fps
- YUYV
- Supported camera controls
- Brightness
- Contrast
- Saturation
- Sharpness
- Gain
- White Balance Temperature, Auto
- White Balance Temperature, Manual
- Auto – Exposure Mode – (Auto, Manual)
- Auto – Exposure Absolute Time
Likewise, onboard digital microphone and external speakers are enumerated as UAC devices to host machine over USB bus. UAC device enumerates on host machine with dual channel. Onboard digital microphone act as capture device and external speakers acts as playback device for host machine, respectively. Both channels on UAC device support control and audio streaming descriptors with UAC specification 1.0.
UAC stands for “USB Audio Class”. UAC device can transmit audio over USB. Like UVC, class specific descriptors and data structures are used to complete the enumeration process. All the UAC class specific descriptors and data structures are defined in USB Audio Class Specification document which is used to provide its capabilities to the host. The specification for UAC is published by USB implementers forum, there are two versions of UAC specification – 1.0 and 2.0. USB Headset is an example of UAC Device.
UAC device features supported by Aikri-QCS610 platform:
- Simultaneous dual channels (playback and capture)
- Supported Formats
- PCM/Stereo/48000 Hz/16bits per sample
- Supported Audio Controls
- Playback (Speaker) Mute Control
- Playback (Speaker) Volume Control
- Capture (Microphone) Mute Control
- Capture (Microphone) Volume Control
Realtime Use cases
Using the above setup, we have validated the following real time use cases.
Video conferencing device on Aikri-QCS610 platform is tested with Microsoft Teams with Linux and Windows host machine.
When device gets enumerated with host, user will get UVC camera device and UAC microphone and speaker device with Mute and Volume controls at “Devices” section of Microsoft Teams application. Following snapshots shows Aikri-QCS610 device selection with Microsoft Teams application.
Once device gets selected, user can initiate teams call with Aikri-QCS610 UVC camera, UAC microphone and speaker device.
Video conferencing device on Aikri-QCS610 platform is tested with Zoom application with Linux host machine.
Similarly, users will get UVC camera device and UAC microphone and speaker device at “Devices” section of Zoom application. Following snapshots shows Aikri-QCS610 device selection with Zoom.
Once device gets selected, user can initiate teams call with Aikri-QCS610 UVC camera, UAC microphone and speaker device.
Video conferencing device use case is demonstrated using Aikri-QCS610 platform and eInfochips software solution.