Version: 1.3.1
Last updated: 2024-02-01
Legend
Product Verb | Development Action |
---|---|
"MUST" | Mandatory product requirement |
"SHOULD" | Optional recommendation |
"MAY" | Nice to have |
Overview
This document describes the requirements a ChromeOS Compatible external webcam meets. This specification is not for WWCB products, nor for a product designed and certified together with a Chromebook.
Webcam Types
This document covers normal USB webcams, focused on video conferencing.
It does not cover more specialized products that support UVC and work like a camera from the software point of view. Some examples of specialized imaging products include:
- IR camera
- RGB camera
- Document camera
- HDMI capture adapter
- Microscope
Hardware and Packaging
- The camera MUST support USB version 2.0 and above.
- The USB camera MUST support being connected to a USB 2.0 Type-A receptacle.
- The USB camera MUST support being connected to a USB Type-C receptacle. Rationale: All Chromebooks must have a USB-C port; USB-A is optional.
- The USB camera SHOULD have a USB Type-C receptacle for use with a detachable USB cable.
- The USB camera SHOULD connect to the Chrome device using a USB C-to-A cable.
- The USB camera MAY connect to the Chrome device using a USB C-to-A adapter.
- If the USB camera includes a USB cable, then the cable SHOULD have USB-IF certification.
- If the USB camera includes a USB conversion adapter, then the adapter MUST satisfy the ChromeOS Compatible specification for connectors.1
- If the USB camera includes a USB cable, then the cable MAY support USB 3 data rates.
- The USB camera SHOULD have a camera activity indicator.
- The camera activity indicator SHOULD be an LED.
- The camera activity indicator MUST be in the active state when the camera is sending data to the ChromeOS host device.
- The camera activity indicator MUST be in the active state when the camera is saving data to its internal memory.
- The camera activity indicator MUST NOT be in the active state when the camera is not saving data or sending data to the host.
- The camera activity indicator MUST NOT be controllable independently of the camera.
- The camera activity indicator MUST NOT be controllable by software.
- The USB camera MAY have a microphone.
- The USB camera SHOULD have a privacy mechanism.
- The privacy mechanism SHOULD include a physical cover that blocks the lens.
- The privacy mechanism MAY include an electronic shutter that blocks the lens.
- The privacy mechanism MUST include a physical privacy switch that is closed when privacy is selected.
- The state of the privacy switch MUST be communicated to the ChromeOS host device.
Power Requirements
- The USB camera MUST respect power restrictions in order of precedence
outlined in USB Type-C spec:
- (if capable) USB3 hosts shall not be overcurrented beyond enumerated configuration
- USB2 hosts shall not be overcurrented beyond enumerated configuration
- As a general guideline:
- USB2 devices shall not draw more than 500mA (instantaneous or sustained)
- USB3 devices shall not draw more than 900mA (instantaneous or sustained)
- Stricter limits may apply on power-limited hosts per USB spec[^power limit]
Electrical Requirements
USB Type-C Requirements
- USB-C receptacle design must use two independent Rd pulldowns for CC1
and CC2
- (shorted together CC1 and CC2 are not allowed).
- USB-C captive cable design must use exactly one Rd pulldown.
- Vbus must not be overcurrented on inrush with spec-compliant slew rates.
OCP protection
- Must not cause overcurrent event on Vconn or VBUS due to:
- Bulk inrush capacitance on Vbus
- Activation inrush on Vbus
- Bulk inrush capacitance on Vconn
- Activation inrush on Vconn
USB video class (UVC)
- The USB camera MUST support UVC (USB Video Class) 1.0 or later.
- The USB camera MUST work with the Chromebook without any additional
software.
- ChromeOS includes the uvcvideo linux driver.
- The USB camera MUST support streaming 1280x720 at 30 fps with MJPEG format.
- The USB camera MUST support auto white balance (AWB).
- The USB camera MUST support auto exposure (AE).
- The USB camera MUST support anti-banding for 50 Hz and 60 Hz power line frequency.
- The USB camera MUST start streaming the first frame in 2000 ms.
- The USB camera MUST report monotonic timestamps.
- The USB camera SHOULD start streaming the first frame in 500ms.
- The USB camera SHOULD support auto focus (AF).
- The USB camera SHOULD support streaming 640x480.
- The USB camera SHOULD support streaming 640x360.
- The USB camera SHOULD support streaming at 24 fps.
- The USB camera SHOULD advertise a user friendly display name.
- The USB camera SHOULD support constant frame rate control (V4L2_CID_EXPOSURE_AUTO_PRIORITY/UVC_CT_AE_PRIORITY_CONTROL).
- The USB camera SHOULD keep streaming with >= 15fps in low-light environments.
The USB camera MAY support pan, tilt, or zoom (PTZ) controls.
- If the USB camera supports any PTZ controls, then the camera MUST
support Zoom control (V4L2_CID_ZOOM_ABSOLUTE) with (value / 100) as the
zoom ratio.
- For example, 250 control value means 2.5x = 250%, and 100 means the normal value without zooming, which must be the default.
- If the USB camera supports any PTZ controls, then the camera MUST support Pan and Tilt controls together.
- For all formats and resolutions supported by the camera, the USB camera
SHOULD work normally with a single [min, max] range exposed by
V4L2_CID_ZOOM_ABSOLUTE control.
- For example, the maximum zoom ratio SHOULD be the same for 720p and 1080p streaming.
- If the USB camera supports any PTZ controls, then the camera MUST
support Zoom control (V4L2_CID_ZOOM_ABSOLUTE) with (value / 100) as the
zoom ratio.
If the USB camera includes a physical privacy shutter or kill switch, then the camera MAY implement V4L2_CID_PRIVACY/UVC_CT_PRIVACY_CONTROL.
If the USB camera supports V4L2_CID_PRIVACY/UVC_CT_PRIVACY_CONTROL then it MUST expose the privacy control state according to the physical shutter/switch.
If the USB camera supports V4L2_CID_PRIVACY/UVC_CT_PRIVACY_CONTROL then it MUST not report privacy control as "On" when the physical shutter/switch is not in use, even if the lens is covered by other objects such as hands or stickers.
If the USB camera supports V4L2_CID_PRIVACY/UVC_CT_PRIVACY_CONTROL then it MUST be able to be queried and return a valid value when the camera is streaming or idle (streamon/streamoff).
The privacy shutter/kill switch MUST NOT be modifiable by the AP. The physical switch MUST be only restored with a physical interaction.
The USB camera SHOULD support privacy control if there is a physical privacy shutter or kill switch.
The USB camera SHOULD support USB suspend. If the device supports USB suspend:
- If the USB camera supports USB suspend, then the camera MUST be able to resume and produce valid frames without any quirk (device-specific workaround) from the system, such as UVC_QUIRK_WAKE_AUTOSUSPEND.
The USB camera MUST NOT output invalid MJPEG frames.
The USB camera MUST NOT hang when switching resolutions dynamically.
Audio - Microphone
This section is only applicable if the webcam has a built-in microphone.
Format
- For both playback and recording
- The supported sample rate should be >= 16k
- Support S16_LE format
- The channel number and configuration must be correct.
- All sampling rates the headset declares supported must work correctly.
- The deviation between measured rate and sampling rate must be ≤ 0.1% .
- The standard error for linear regression of measured rate must be < 30.
- The headset must support playback or capture under different sample rates it
asserts to support.
- For example: play audio under 44.1k but capture voice under 48k
simultaneously.
- Otherwise, it requires ChromeOS to add a specific configuration file to prevent it on the system side.
- For example: play audio under 44.1k but capture voice under 48k
simultaneously.
Mute
- Capture Path - Mute
- If there is any interface for users to mute the audio device, it must
- Maintain the mute state in a way that is not affected by
- Opening and closing the device.
- Switching to another input device.
- Maintain the mute state in a way that is not affected by
- If a user interface indicating the headset's mute state is provided, it should change correspondingly when the state changes.
- If there is any interface for users to mute the audio device, it must
Volume (Frequency Response)
- Output Frequency Response (MAY)
- The frequency response requirement is required for users to use the headset without any manual adjustment of the capture gain.
- For BT, USB device
- The computed average RMS dBFS level output for the speech sample under
94dBSPL must satisfy
- In range of [-15, -5] dBFS under 1k sine tone.
- The value will be used as a reference points for 4k and 7k sine tone
- In the range of ±5 dB of the 1k response reference under 4k and 7k
sine tone.
- This is to secure an acceptable flat frequency response
- In range of [-15, -5] dBFS under 1k sine tone.
- For 3.5 mm devices, the frequency response requirement is required for
users to use the headset without any manual adjustment of the capture
gain.
- The computed average RMS dBFS level output for the 1k, 4k and 7k sine tone under signal level 94dBSPL
- dBSPL should be in the range of 0 to -23 dBFS.
A/V Sync
- A/V Sync
- The amount of time the audio departs from perfect synchronization.
- The deviation should be -95 ms to 25 ms.
- Note:
- (+) Audio is faster than video
- (-) Audio is lower than video
- Note:
App Compatibility
- The USB camera MUST work with the Google Meet web version.
- The USB camera MUST be recognized by Meet when joining a meeting for the first time.
- The USB camera MUST work with the built-in ChromeOS camera app.
- If the USB camera has a built-in microphone, the video and audio must be synchronized.
- The USB camera SHOULD support firmware updates via fwupd.
Revision History
Date | Version | Notes |
---|---|---|
2024-02-01 | 1.3.1 | Republication on a new platform |
2023-11-08 | 1.3 | Initial Partner Site Publication |
-
This page will be linked when it becomes available. ↩