[wdmaudiodev] Re: XP buffer handling question

  • From: Walter Oney <waltoney@xxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Mon, 09 Dec 2002 12:12:36 -0500

"Michael R. Preston" wrote:
> OK.  I figured out part of what's going on.  So...  I'm writing an
> upper-level filter driver.  Some applications use streaming buffers, and
> some use a ring buffer.  When an application uses a ring buffer, it only
> calls IOCTL_KS_WRITE_STREAM once.  It seems that the only way do some
> intermediate processing on the audio stream (I'm just talking about the
> ring buffer case) is to intercept the calls to IOCTL_KS_PROPERTY when
> the app (or Windows) gets the position (Id=KSPROPERTY_AUDIO_POSITION),
> and from the play and write pointers you can figure out what portion of
> the buffer to process.  Does that sound reasonable?  I'm trying to do
> some processing on the audio before it gets played by the lower-level
> driver.

I'm going to go out on a limb here and expose my considerable (but
monotonically decreasing) ignorance about streaming. It sounds to me as
though you've built a WDM filter driver that sits in the stack above a
kernel streaming filter. If so, you may have run afoul of the problem
that the word "filter" is being used in two inconsistent ways in the
DDK. 

A "kernel streaming filter" is really a WDM function driver that pairs
with KSPROXY.AX in user mode to particpate in a filter graph. In WDM
terms, the bus driver for this pseudo device is the software enumerator. 

There are no DDK samples for writing data transform filters. In fact,
the DDK actively discourages people from trying to write them, and
that's precisely the area that I'm currently coming up to speed on. You
may have better luck using the Direct-X SDK to build a user-mode
Direct-Show transform filter. The Direct-Show base classes provide a lot
of support and documentation for how to do that.

--
Walter Oney, Consulting and Training
Basic and Advanced Driver Programming Seminars
Now teaming with John Hyde for USB Device Engineering Seminars
Check out our schedule at http://www.oneysoft.com
******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

Other related posts: