[wdmaudiodev] Re: FW: Re: newbie questions

  • From: niaren 9 <niaren9@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 12 Oct 2010 11:37:56 +0200

Thanks for feedback Harry,

Still though, I don't want to limit the demonstration to one or several
movie files. The user (which could be a hardware or device manufactorer or
similar) must be able to use any material for his verification purposes.

It seems I have to either implement AVStream driver and fight the system or
implement SysFx APO module and limit the demonstrator to Vista and beyond.

I have discovered that a big US audio company recently released a piece of
software demonstrating their audio features using what I think is an
avstream driver. The demonstrator runs on Vista and win7. By simple search
in the binary .sys file I have verified that it imports KsInitializeDriver.
So although it may be a complex task to develop a working avstream driver it
might still be feasible...

Searching google I found a document "Custom Audio Effects in Windows Vista"
which describes the System Effect Audio Processing Objects (sAPOs) (
http://www.microsoft.com/whdc/device/audio/sysfx.mspx). In the end of the
document under 'Signal Processing Requirements" I stumbled across this
sentence "Do not use nonlinear processing.". I can hardly think of any
serious audio effects which aren't nonlinear. If this is the official
opinion on custom sAPOs they are more or less useless. What do you think?

2010/10/12 Harry Graham <HarryGraham@xxxxxxxxxx>

>  For demonstration purposes, there are much simpler approaches than
> writing a driver.  For example, drop your movie file into graphedt, and it
> will create a graph for playing.  Then write a grabber filter, and insert it
> into the audio out path.  Implement your audio processing in the grabber
> filter.
> For a real product, it would still be much simpler to implement a player
> than a driver.
> Best of luck.
> Harry
>  ------------------------------
> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:
> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *niaren 9
> *Sent:* Monday, October 11, 2010 2:41 PM
> *To:* Tim Roberts
> *Cc:* wdmaudiodev@xxxxxxxxxxxxx
> *Subject:* [wdmaudiodev] Re: newbie questions
> Thanks Tim,
> Point taken! What I meant was the most used OS versions today. I believe XP
> is one of them.
> If I understand you correctly then if I want to support OS versions from XP
> and beyond then there is no obvious (best practice) way to do it because XP
> requires an avstream filter driver implementation and for Vista and win7
> this is not recommended. That is not what I had hoped fore. Then two
> different implementations are required, one for XP and one for the
> remaining.
> I'm not familiar with the new audio philosophy but in the scenario I have
> in mind the user actively starts a control application for the AVStream
> driver. In this view a given media player does not directly request extra
> audio features in the audio stream but the user requests it by starting the
> control application and by enabling the features in the GUI control
> application.
> What I want is to process the audio stream before it is going to the
> speaker(s). In this way I don't have to implement a movie player myself in
> order to demonstrate the audio features for movies. Any player would do.
> niaren
> Windows XP was released in 2001.  It's not really accurate to call it
> "newer".
> > and with any media player available (not just windows media
> > player).The audio processing must be controlable for the user and the
> > audio processing is intended for music and movie playback
> > primarily.How can I do that? From what I have read, it seems I could
> > achieve the above by inserting a filter into the audio driver stack. I
> > believe this should be possible by implementing an AVStream driver.
> > My first question: Is this correct?
> In XP, that's really the only option.  In Vista and beyond, you have the
> option of implementing a System Effects Audio Processing Object (SysFx
> APO), although the philosophy is that such an object is directly
> associated with a specific piece of hardware.  The new audio philosophy
> simply does not allow your model.   There should not be anything in the
> audio stream that the application did not specifically request.  Thus,
> you are fighting the system.
> > Follow up question? Is there is an easier way to achieve what I want?
> > Can it for instance be done without any driver development?
> That depends.  If you just want to grab a copy of the final speaker
> output, do something with it, and send it somewhere else, you can do
> that by using a rendering endpoint in loopback mode.  That won't let you
> modify the output stream, but you can monitor it.
> --
> Tim Roberts, timr@xxxxxxxxx
> Providenza & Boekelheide, Inc.
> ******************
> 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
> http://www.wdmaudiodev.com/

Other related posts: