Matter Camera: Exclude audioVolume on unusable volume range - #3242
samadDotDev wants to merge 4 commits into
Conversation
|
Invitation URL: |
|
matter-switch_coverage.xml
Minimum allowed coverage is Generated by 🐒 cobertura-action against b6314ae |
Test Results 73 files 541 suites 0s ⏱️ Results for commit b6314ae. ♻️ This comment has been updated with latest results. |
|
The equal min/max convention seems like a reasonable compatibility mechanism for devices whose hardware cannot provide adjustable gain/volume, and handling speaker and microphone independently makes sense. I noticed two cases that I think should be addressed. 1. Range discovery currently depends on
|
|
Good catch on both. For # 1: you're right, it wasn't actually decoupled. For # 2: the capability-inclusion check already treats |
|
Thanks! Both issues I raised are now addressed. Moving the range attributes into the One small remaining edge case: Other than that, the changes look good to me. |
|
@Ideora Good catch again, confirmed with a test. Once Added a guard: when the range is zero-width, it reports a fixed 0 instead of normalizing. Also checked the volume math in |
Description of Change
In Matter spec, there’s no specific feature-map based gating on microphone/speaker volume settings, outside of the larger Audio (ADO) feature i.e. any camera device supporting audio needs to implement these settings even if the hardware doesn’t support adjusting volume/gain for it. We have encountered one such camera and have confirmed with the partner that this setting cannot be implemented for their hardware.
Upon following up with Camera TT in CSA, it was noted as a miss that will be followed up separately (to either change the conformance of volume settings from
ADOto[ADO], or introduce a separate feature map bit for audio gain control) in the future versions of the spec. However to resolve issues in the field and currently available versions of the spec, we found a backward-compatible workaround (which was confirmed to be allowed per DM TT) where min and max can be set to the same value in the constraints defined for these attributes, and that can be keyed off by clients to determine that the volume range is unusable and therefore the capability can be excluded.Summary of Completed Tests