[wdmaudiodev] Re: AC3 support in KMixer

  • From: "Stephan" <stephan@xxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 14 Oct 2002 10:18:06 +0200

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

Other related posts: