What if the requested input format is nullptr?
From: Michael Johansen<mailto:johansen.mic@xxxxxxxxx>
Sent: Thursday, March 10, 2016 3:51 AM
Cc: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: SFX APO and Windows Media Player
... with an AddRef first ofcourse...
Michael
2016-03-09 17:43 GMT+01:00 Matthew van Eerde
<Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>>:
It is expected for different media players to behave differently, depending on
the higher-level APIs they use.
In particular, Windows Media Player is probably using Media Foundation, which
will probe WASAPI to see whether it can leverage the source format to do things
like headphone virtualization.
I don't know what MPC uses.
You say the SFX is returning S_OK. What is it setting the output pointer to?
https://msdn.microsoft.com/en-us/library/windows/hardware/ff536511(v=vs.85).aspx
If the call completed successfully, the ppSupportedInputFormat parameter
returns a pRequestedInputFormat pointer and the IsInputFormatSupported method
returns a value of S_OK. Otherwise, this method returns one of the following
error codes:
From: Michael Johansen<mailto:johansen.mic@xxxxxxxxx>
Sent: Wednesday, March 9, 2016 6:06 AM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] SFX APO and Windows Media Player
Hi,
I am helping a customer upgrade an existing GFX APO to the new SFX, MFX, EFX
design.
The customer wants to use an SFX for certain effects. It installs fine. But
when using an MP3 file with Windows Media Player IsInputFormatSupported is
called with format tag WAVE_FORMAT_MPEGLAYER3 to which the APO returns
APOERR_FORMAT_NOT_SUPPORTED. Then the APO is called again with other float32
supported formats that the APO responds S_OK to. But WMP then stop with a
failure saying it does not support the format. If I install the MFX or EFX all
is fine.
Also if I use another player such as MPC it starts with asking for the float32
format and plays nicely with the SFX.
What would be the solution to handle this situation with WMP?
- Michael