[wdmaudiodev] Re: AC3 support in KMixer

  • From: "Van Mieghem, Dirk" <dvm@xxxxxxxx>
  • To: "'wdmaudiodev@xxxxxxxxxxxxx'" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 17 Oct 2002 20:25:32 +0200

Hi Stephan,
I verified my driver with the HCT11 AC3 test program and it passes all
tests, I don't see the wrong WriteOffset you described. I tried this with an
extra DataRange on an existing pin and a dedicated AC3 render pin, both
yielded exactly the same positive results. However, the performance with AC3
over DirectSound is still bad in both cases. No problem using waveout as the
render device.

It's another mystery to me :)

Thanks,
Dirk

> -----Original Message-----
> From: Van Mieghem, Dirk [mailto:dvm@xxxxxxxx]
> Sent: Monday, October 14, 2002 10:57 AM
> To: 'wdmaudiodev@xxxxxxxxxxxxx'
> Subject: [wdmaudiodev] Re: AC3 support in KMixer
> 
> 
> 
> Thanks Stephan,
> yes I'm using WavePCI. You're probably right that 
> KSPROPERTY_AUDIO_POSITION
> wont be forwarded to the mini driver and even if it would, 
> how can we put a
> sensible value in WriteOffset without knowing anything about 
> the actual
> buffer queueing?
> 
> Creating a special AC3 WaveCyclic based device has some 
> drawbacks too. We
> already exhausted the 10-device limit on W2K and it would 
> require that the
> user switches the default DirectSound device all of the time.
> 
> Dirk
> 
> > -----Original Message-----
> > From: Stephan [mailto:stephan@xxxxxxxxxx]
> > Sent: Monday, October 14, 2002 10:18
> > To: wdmaudiodev@xxxxxxxxxxxxx
> > Subject: [wdmaudiodev] Re: AC3 support in KMixer
> > 
> > 
> > 
> > > Anyone seen similar behavior and more important, a solution maybe?
> > Yes, we do get the same behavior. Are you using the WavePCI 
> > class driver?
> > WavePCI has a bug in its KSPROPERTY_AUDIO_POSITION handler 
> > resulting in
> > erroneous positions reported after any attempt to set the
> > KSPROPERTY_AUDIO_POSITION PlayOffset/WriteOffset (this is 
> > ONLY with non-PCM
> > data). See message below....
> > 
> > The only solution we found up to now is connecting to 
> > WaveCyclic instead of
> > WavePCI. It might also be possible to add your own handler for the
> > KSPROPERTY_AUDIO_POSITION property, but I'm not sure if 
> > WavePCI would pass
> > the property down to your mini driver in this case.
> > 
> >     Stephan
> > 
> > 
> > **********************************
> > 
> > Hello All,
> > 
> > I'm trying again, now that we're hosted at freelists ;-)
> > 
> > Our PCI audio card WDM miniport driver connects to WavePCI 
> > and has a non-PCM
> > (AC3 over SPDIF) capable pin.
> > 
> > We ran into the following issue when trying to stream AC3 
> > over SPDIF (under
> > WinXP Pro): the latest versions of WinDVD and other DVD players use
> > IReferenceClock to derive and set the current AC3 stream 
> > position (and thus
> > read/write KSPROPERTY_AUDIO_POSITION).  Once the DVD player 
> > attempts to set
> > the KSPROPERTY_AUDIO_POSITION PlayOffset/WriteOffset, the 
> > read back value of
> > PlayOffset is changed but WriteOffset is NOT.
> > 
> > The result is totally desynced audio<->video after any stream 
> > discontinuity.
> > The KSPROPERTY_AUDIO_POSITION is handled by the WavePCI class 
> > driver so
> > unfortunately we've no influence on the returned values. Note that
> > KSPROPERTY_AUDIO_POSITION does work with PCM audio streams. 
> Below I've
> > attached the WHQL AC3 driver test log for our WavePCI driver.
> > 
> > We have been able to fix this issue by moving to an WaveCyclic
> > implementation but we'd like to fix the WavePCI version for 
> > its better low
> > latency performance.
> > 
> > So here's my question:
> > 
> > 1) Is this a known bug (I guess it is because failure of 
> HCT test case
> > 34:1.7 is allowed with WavePCI drivers) and is a fix for 
> this planned
> > 
> > 2) Is it possible to fix this issue by exposing the
> > KSPROPERTY_AUDIO_POSITION property from the miniport driver, 
> > which node
> > should expose the property and is there any sample code how 
> > to do this.
> > 
> > 
> > 
> > ----- Original Message -----
> > From: "Van Mieghem, Dirk" <dvm@xxxxxxxx>
> > To: <wdmaudiodev@xxxxxxxxxxxxx>
> > Sent: Sunday, October 13, 2002 10:05 PM
> > Subject: [wdmaudiodev] AC3 support in KMixer
> > 
> > 
> > >
> > > I had some problems adding AC3 support to a WDM/KS driver. 
> > I folowed the
> > > non-PCM document written by Microsoft but only a waveout 
> > device would pass
> > > KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF to the driver. An AC3 
> > decoder graph
> > > constructed with a waveout device would play such a stream 
> > without an
> > > hiccup.
> > >
> > > The only problem is that Microsoft is fading the classic 
> > wave API away in
> > > favor of DirectSound. I don't understand why as I don't 
> see a single
> > > advantage in using DS. Anyway, DirectSound seems to pass 
> > non-PCM streams
> > to
> > > the driver only if there's a topology port. I don't grasp 
> > the link between
> > > AC3 and topology but there has to be a topo connection or 
> > you don't get
> > > non-audio data.
> > >
> > > Well, it works now but the performance is extremely bad. 
> > The directsound
> > > renderer inserts breaks and silence whenever there's some 
> > activity on the
> > > system, impossible to play a video with AC3, sync is 
> completely lost
> > within
> > > seconds. Anyone seen similar behavior and more important, 
> a solution
> > maybe?
> > >
> > > Thanks,
> > > Dirk
> > > ******************
> > >
> > > 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/
>

******************

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/
******************

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/
******************

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: