[wdmaudiodev] Re: AVStream Audio Frustration

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 2 Nov 2012 16:46:21 -0700

Matthew van Eerde wrote:
>  
>
> Can you clarify why it is a problem for a format converter to be
> inserted above you?
>

I may have thrown up too much information and distracted us from the
main point, or maybe it's just that I'm isolating the problem better as
time goes on.  I don't really care about DirectShow; my use case is
waveIn.  It just so happens that Graphedt shows the same behavior in
that one case.

Someone, somewhere, is caching my "default audio format".  I think we
can all agree that's true; it's displayed in the control panel
Microphone Properties "Advanced" tab.  When I change that selection (as
I've just learned), the Audio Engine does go through my intersect
handler.  It will only allow a selection that passes my intersection.

The issue is that, in the sysaudio/waveIn scenario, the system will only
send me the "default audio format", even if that format no longer passes
my intersection.  If my format set has changed, I fail in the SetFormat
handler and unhappiness ensues.

Say that I select 22-M-16 in control panel.  Now, let's say that I
reboot, and after the reboot I can only handle 44-S-8.  In that case,
the system will still only connect at 22-M-16 (from the cache), even
though that no longer passes my intersect handler.


Matt Gonzalez wrote:
> Have you tried KSEVENT_PINCAPS_FORMATCHANGE?  It's only supported on
> Windows 7, but that may be what you're looking for.

I'm not sure I know how to send that.  That would be a pin event
(wouldn't it?), and I can't connect the pin if the format doesn't
match.  I suppose I could accept the bad format then generate the
event.  Hmmm.

-- 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

Other related posts: