I'm currently trying to expose custom formats supported by my EFX APO
via IAudioSystemEffectsCustomFormats. So far I've managed to get custom
formats to show up in the Advanced tab in Sound Control Panel (mmsys.cpl),
but whenever I try to apply one of the custom formats I get "Format not
supported by the device" error.
I've checked and it looks like APO's IsInputFormatSupported method is not
being called with the new format at all. I've also tried setting various
APO flags (including APO_FLAG_NONE) and it still didn't help.
At this point I'm wondering whether adding custom formats is still
supported, since apparently this functionality was added back in Vista and
after all these years I've only been able to find only a couple of
discussions about it.
To add some context, I'm trying to add surround formats to a USB stereo
headset to enable sound virtualization in games (since games tend to look
only at the mix format). AFAIK usually this is accomplished via custom
kernel driver, but I'd like to implement this without touching the kernel,
if at all possible. (I've also heard that recent Windows updates brought
some changes which might have helped, but after some testing it seems that
the issue is still there, even on the latest Windows Insider builds.)