[wdmaudiodev] Re: AC3 support in KMixer

  • From: "Van Mieghem, Dirk" <dvm@xxxxxxxx>
  • To: "'wdmaudiodev@xxxxxxxxxxxxx'" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 14 Oct 2002 10:57:25 +0200

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/

Other related posts: