[wdmaudiodev] Re: Advertising an APO as supporting 7.1 Surround Sound

  • From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 9 Nov 2015 16:10:22 +0000

Don’t do that. Just live with the fact that only some apps will leverage your
APO.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Nanda Kutty
Sent: Monday, November 9, 2015 7:53 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Advertising an APO as supporting 7.1 Surround Sound

I believe my only option here is to create a kernel mode driver and:override
the handlers for KSPROPERTY_PIN_DATARANGES and KSPROPERTY_PIN_DATAINTERSECTION.
I don't see any other alternative.


On Sat, Nov 7, 2015 at 9:24 AM, Nanda Kutty
<nkutty@xxxxxxxxxxxx<mailto:nkutty@xxxxxxxxxxxx>> wrote:
My understanding is that games use one of the following to query whether the
default device has multi-channel capabilities:
- IDirectSound::GetSpeakerConfig
or
- IXAudio2MasteringVoice::GetVoiceDetails and check under
XAUDIO2_VOICE_DETAILS::InputChannels

If you just have a DirectSound device, and you call GetSpeakerConfig, I don't
even think an LFX APO is even loaded yet as no stream is present.

It certainly appears that the "Speaker Setup" wizard simply uses registry
settings to determine device capabilities, and does not actually load the APO.

I tried creating an entry "PKEY_AudioEndpoint_PhysicalSpeakers" set to
KSAUDIO_SPEAKER_7POINT1 with as an endpoint property in the INF, but that
didn't do anything.





On Sat, Nov 7, 2015 at 2:58 AM, Matthew van Eerde
<Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>> wrote:
Yes and no. It depends on the higher-level API the app is using.

Apps which use Media Foundation (or APIs that internally use Media Foundation)
go through the Media Foundation Streaming Audio Renderer. This calls
IAudioClient::IsFormatSupported.

But apps which use DirectSound do not.

There are various versions of XAudio2. Some (possibly all?) of these behave the
way DirectSound does.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>]
On Behalf Of M'hand BOUGHIAS
Sent: Saturday, November 7, 2015 12:56 AM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Advertising an APO as supporting 7.1 Surround Sound

Hi , the application can open a 71 audio on a stereo device if the
IsInputFormatSupported succeeds. Instead of trying to open a stream with the
mixer (device) format, applications should try to open a stream with the media
format.

Regards.


M'hand BOUGHIAS
________________________________
De : Nanda Kutty<mailto:nkutty@xxxxxxxxxxxx>
Envoyé : ‎07/‎11/‎2015 02:21
À : wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Objet : [wdmaudiodev] Advertising an APO as supporting 7.1 Surround Sound
'm working on an APO that has surround sound capabilities. However, when
enumerated via XAudio2 or DirectSound, the device only shows up with "stereo"
capabilities.

Furthermore, when I select "Configure" in the audio properties, I only see
"Stereo" under the Audio Channels list and only 2 speakers can be tested. I'd
like it to say "7.1 Surround"/

Do I need to define a set of endpoint properties in the INF?

thanks,
nanda


Other related posts: