[wdmaudiodev] Re: wasapi audioclientproperties

  • From: gordon keith <gordik55@xxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 1 Oct 2014 12:45:36 +0000

Have made some progress using wdm ks first with portaudio and now the Direct KS 
sample
It seems that for wavecyclic I don't need to copy data to a device buffer, I 
just need to pass a pointer to a buffer containing the data to the packet (so 
can have the data loaded into ram and then just step along the data). Does the 
driver then load this into a driver side buffer before passing to device via 
dma ? With this approach I don't need a separate thread so can run in one 
thread, again improves sq.
Also, clients I've seen don't set the Packets[i].Header.PresentationTime.Time, 
when I set it to increment by the buffer size in 100 ns and set it to a valid 
time the sound quality is improved, any comments on this ?
Would comment that the code design of pa is fairly baroque, which affects the 
sound quality, so using directks is better, though I'm working to trim this 
down further.
setting create file and pin properties to generic_write for rendering improves 
the sq
using createpin2 improves sq because it requires coinitialise, which seems to 
have an effect.
cheers

From: gordik55@xxxxxxxxxxx
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: wasapi audioclientproperties
Date: Thu, 12 Jun 2014 07:20:54 +0000




thanks

> Date: Thu, 12 Jun 2014 08:08:10 +0200
> From: robert.bielik@xxxxxxxx
> To: wdmaudiodev@xxxxxxxxxxxxx
> Subject: [wdmaudiodev] Re: wasapi audioclientproperties
> 
> If you want to, you can use Portaudio (www.portaudio.com) for your audio back 
> end (I wrote the WaveRT WDM KS part of it). It will always open the output
> device with maximum bitdepth so it should fit your bill nicely.
> 
> Regards
> /Robert
> 
> Matthew van Eerde skrev 2014-06-11 22:21:
> > There are two ways* to stream via DirectKS: “standard streaming” and 
> > “standard looped streaming”.
> > 
> >  
> > 
> > The DirectKS sample only shows how to do “standard streaming”.
> > 
> >  
> > 
> > Later-generation drivers tend to be WinRT miniports; portcls only 
> > advertises support for “standard looped streaming” on such drivers. Here’s 
> > a screenshot of KS Studio on hdaudio.sys.
> > 
> >  
> > 
> >  
> > 
> > The DirectKS sample doesn’t work on such devices. It should continue to 
> > work (even on Windows 7 or Windows 8) if the driver supports “standard 
> > streaming”, though.
> > 
> >  
> > 
> > To be more specific:
> > 
> >  
> > 
> > 1.       WaveRT miniports (like the inbox Microsoft HD Audio class driver 
> > hdaudio.sys) support only “standard looped streaming”.
> > 
> > 2.       WaveCyclic miniports support both streaming models.
> > 
> > 3.       WavePci miniports support both streaming models.
> > 
> > 4.       The inbox Microsoft USB Audio class driver (usbaudio.sys) supports 
> > only “standard streaming”.
> > 
> > 5.       The inbox Microsoft Bluetooth audio class drivers (btha2dp.sys, 
> > bthhfaud.sys) support only “standard streaming”.
> > 
> >  
> > 
> > *OK, there’s a little bit more than two ways. There’s also audio offload, 
> > and KSPROPSETID_RtAudio, and other complications. But let’s pretend there’s 
> > only two for now.
> > 
> ******************
> 
> 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.com/
> 
                                                                                
  

Other related posts: