You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During the audiomixer review, @BatthalaH provided a comprehensive gap analysis between the legacy dsAudio.h API and the current AudioMixer AIDL interface. This discussion captures the full gap table for team review and prioritisation.
Per-input volume and fader control are already tracked in issue #396 and PR #399. This discussion covers the remaining gaps.
Currently DOLBY_ATMOS_SUPPORT (id=6) is read-only capability only
19
Auto stereo mode (dsSetStereoAuto)
OutputPortProperty.AUTO_MODE
Not present
Low Priority
#
dsAudio.h Feature
Missing in AIDL
Notes
20
ARC/eARC management (SAD, ARC type, enable)
OutputPortProperty.ARC_*
May belong in HDMI HAL rather than AudioMixer
Questions for Discussion
AQParameter granularity: Many existing AQParameters (VOLUME_LEVELLER, SURROUND_DECODER, SURROUND_VIRTUALIZER, MI_STEERING, INTELLIGENT_EQUALIZER) exist as simple IDs but lack the mode/level/enable sub-parameters that dsAudio.h provides. Should we:
Add new AQParameter enum values for each sub-parameter (e.g., VOLUME_LEVELLER_MODE = 18, VOLUME_LEVELLER_LEVEL = 19)?
Use structured PropertyValue to encode mode+level in a single parameter?
Keep the current single-ID approach and let the vendor interpret the value?
DRC Mode: dsAudio.h distinguishes Line mode vs RF mode for DRC. Should this be a new AQParameter or an OutputPortProperty?
AC4 language selection: Is this a mixer concern or should it live on the AudioDecoder? AC4 language selection happens at the decode stage, not the mix stage.
MS12 capabilities: Should MS12/MS11 support flags be part of Capabilities (mixer-level) or OutputPortCapabilities (per-port)? Or both?
Audio Gain vs Volume: dsAudio.h has both dsSetAudioGain (-2080 to +480, presumably 0.1dB steps) and volume (0-100). Do we need both, or does 0-100 volume plus AQ post-gain cover the use cases?
ARC/eARC: Should ARC management stay in the AudioMixer HAL or be handled entirely by the HDMI Output HAL?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Context
During the audiomixer review, @BatthalaH provided a comprehensive gap analysis between the legacy dsAudio.h API and the current AudioMixer AIDL interface. This discussion captures the full gap table for team review and prioritisation.
Per-input volume and fader control are already tracked in issue #396 and PR #399. This discussion covers the remaining gaps.
Full dsAudio.h Gap Table
High Priority
dsSetAudioMixerLevels)IAudioMixerControllerinput attenuationdsSetFaderControl)Property.FADER_CONTROL(range -32 to +32)FADER_LEVEL(0-100 range). Need to decide: keep 0-100 or adopt dsAudio's -32 to +32 range?dsSetDRCMode)AQParameter.DRC_MODEorOutputPortProperty.DRC_MODEAQParameter.DRC(id=17) exists but only covers compression, not Line/RF mode selectionProperty.AC4_PRIMARY_LANGUAGE,AC4_SECONDARY_LANGUAGEdsSetVolumeLeveller)AQParameter.VOLUME_LEVELLER_MODE+LEVELAQParameter.VOLUME_LEVELLER(id=0) exists but lacks mode/level granularitysetInputAttenuation()inIAudioMixerControllerorProperty.INPUT_ATTENUATION[]setInputVolume()/getInputVolume()Medium Priority
dsSetAudioCompression)AQParameter.COMPRESSIONdsSetDolbyVolumeMode)AQParameter.DOLBY_VOLUME_MODEdsSetIntelligentEqualizerMode)AQParameter.INTELLIGENT_EQUALIZER_MODEAQParameter.INTELLIGENT_EQUALIZER(id=11) exists but lacks mode selectiondsEnableSurroundDecoder)AQParameter.SURROUND_DECODER_ENABLEDAQParameter.SURROUND_DECODER(id=7) exists but lacks explicit enable/disabledsSetSurroundVirtualizer)AQParameter.SURROUND_VIRTUALIZER_MODE+BOOSTAQParameter.SURROUND_VIRTUALIZER(id=8) exists but lacks mode/boost granularitydsSetMISteering)AQParameter.MI_STEERING_ENABLEDAQParameter.MI_STEERING(id=9) exists but lacks explicit enable/disableCapabilities.supportsMS11Decode,supportsMS12DecodedsGetMS12Capabilities)OutputPortCapabilities.supportedMS12FeaturesdsGetMS12AudioProfileList)Capabilities.supportedAQ_ProfilesasString[]dsEnableLEConfig)AQParameter.LOUDNESS_EQUIVALENCE_ENABLEDdsSetAudioGain)OutputPortProperty.GAINVOLUME(0-100) existsdsSetAudioAtmosOutputMode)OutputPortProperty.ATMOS_OUTPUT_ENABLED(write)DOLBY_ATMOS_SUPPORT(id=6) is read-only capability onlydsSetStereoAuto)OutputPortProperty.AUTO_MODELow Priority
OutputPortProperty.ARC_*Questions for Discussion
AQParameter granularity: Many existing AQParameters (VOLUME_LEVELLER, SURROUND_DECODER, SURROUND_VIRTUALIZER, MI_STEERING, INTELLIGENT_EQUALIZER) exist as simple IDs but lack the mode/level/enable sub-parameters that dsAudio.h provides. Should we:
VOLUME_LEVELLER_MODE = 18,VOLUME_LEVELLER_LEVEL = 19)?DRC Mode: dsAudio.h distinguishes Line mode vs RF mode for DRC. Should this be a new
AQParameteror anOutputPortProperty?AC4 language selection: Is this a mixer concern or should it live on the AudioDecoder? AC4 language selection happens at the decode stage, not the mix stage.
MS12 capabilities: Should MS12/MS11 support flags be part of
Capabilities(mixer-level) orOutputPortCapabilities(per-port)? Or both?Audio Gain vs Volume: dsAudio.h has both
dsSetAudioGain(-2080 to +480, presumably 0.1dB steps) and volume (0-100). Do we need both, or does 0-100 volume plus AQ post-gain cover the use cases?ARC/eARC: Should ARC management stay in the AudioMixer HAL or be handled entirely by the HDMI Output HAL?
FADER range: Issue Task: audiomixer — add per-input volume/attenuation and fader control #396 uses 0-100. dsAudio.h uses -32 to +32. Which range should the AIDL adopt?
cc @BatthalaH @srinivasgtl @lkennedylamb @dougadler @deekshithdevadas
Beta Was this translation helpful? Give feedback.
All reactions