[wdmaudiodev] Re: Vista and AC3

  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 4 Jan 2007 10:49:22 -0500

Thank you for your detailed reply Mitch.  Unfortunately, I have to report no 
change- it seems that just the first data range is accepted, whatever that may 
be.  If it is AC3, then AC3 passthrough works, but PCM does not.  If the PCM 
datarange is first in the array, then PCM works, and AC3 passthrough does not.  
Looking at the pin in KS Studio, it seems that the first datarange for 
KSDATAFORMAT_SPECIFIER_WAVEFORMATEX is reflected to 
KSDATAFORMAT_SPECIFIER_DSOUND, and subsequent dataranges are ignored.  It seems 
that portcls does NOT like having a PCM datarange mixed with a non-PCM 
datarange.

Could you confirm that it is possible that portcls works with PCM and non-PCM 
dataranges at once for the same pin factory?  It seems that the HD audio driver 
has no trouble doing this, but with portcls it's another matter, or at least it 
appears so.

thanks,

Philip Lukidis 

> -----Original Message-----
> From: wdmaudiodev-bounce@xxxxxxxxxxxxx
> [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx]On Behalf Of Mitchell Rundle
> Sent: Wednesday, January 03, 2007 5:03 PM
> To: wdmaudiodev@xxxxxxxxxxxxx
> Subject: [wdmaudiodev] Re: Vista and AC3
> 
> 
> Yes, you should be able to have PCM and AC3 dataranges on a 
> single host pin.  It sounds like the topology you want is just
> 
>     Output Host (Pin 0)    o---  ---[]    Output Bridge (Pin 1)
>     Input Bridge (Pin 2)    []--- ---o     Input Host (Pin 3)
> 
> Where categories are:
>     Pin 0 = KSCATEGORY_AUDIO
>     Pin 1 = KSNODETYPE_SPDIF_INTERFACE
>     Pin 2 = KSNODETYPE_SPDIF_INTERFACE
>     Pin 3 = KSCATEGORY_AUDIO
> 
> and dataranges are:
>    Pin 0 = array of 2 KSDATARANGE_AUDIO, one with PCM and one with AC3
>    Pin 1 = standard bridge pin datarange
>    Pin 2 = standard bridge pin datarange
>    Pin 3 = array of 2 KSDATARANGE_AUDIO, one with PCM and one with AC3
> 
> This would give you 1 SPDIF output device and 1 SPDIF input 
> device in the audio control panel.
> 
> More specifically, the datarange array for the SPDIF host 
> pins might look something like:
> 
> static KSDATARANGE_AUDIO HostPinDataranges[] =
> {
>   // 48-kHz PCM
>   {
>     {
>       sizeof(KSDATARANGE_AUDIO),
>       0,
>       0,
>       0,
>       STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
>       STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
>       STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
>     },
>     2,     // Max number of channels
>     16,    // Minimum number of bits per sample
>     16,    // Maximum number of bits per channel
>     44100, // Minimum rate
>     48000  // Maximum rate
>   },
>   // 48-kHz AC-3 (also implies support for DTS and WMAPro 
> over SPDIF on Vista)
>   {
>     {
>       sizeof(KSDATARANGE_AUDIO),
>       0,
>       0,
>       0,
>       STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
>       STATICGUIDOF(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF),
>       STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
>     },
>     2,     // Max number of channels
>     16,    // Minimum number of bits per sample
>     16,    // Maximum number of bits per channel
>     44100, // Minimum rate
>     48000  // Maximum rate
>   },
> };
> 
> Hopefully this helps.  Regards,
> Mitch
> 
> ________________________________________
> From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
> [wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Philip 
> Lukidis [plukidis@xxxxxxxxxxxxx]
> Sent: Wednesday, January 03, 2007 12:38 PM
> To: wdmaudiodev@xxxxxxxxxxxxx
> Subject: [wdmaudiodev] Re: Vista and AC3
> 
> Hi Mitch, thanks for your reply.
> 
> My device has several analog line outputs, two S/PDIF 
> outputs, as well as 2 MIDI ports.  S/PDIF is handled by an 
> appropriate subdevice (one for optical, one for coax).  BTW 
> the underlying bus is firewire.
> 
> I would like to handle both PCM and AC3 on the optical and 
> coax subdevices.  On XP this was easy because an added extra 
> pin factory with the AC3 dataranges did not result in the 
> device appearing as an extra audio device (as it does under Vista).
> 
> Now, my subdevice wave topology is quite simple: 4 pins (in, 
> out and their bridge pins), and two 
> KSNOTETYPE_SPDIF_INTERFACE nodes (not DACs), one for input 
> and output.  The wave filter is connected to the topology 
> filter appropriately.  Previously, there were no internal 
> nodes in the topology filter (we have proprietary mutes and 
> volumes).  I tried Cheng's suggestion to add a mute node 
> within the topology filter, but so far I have no luck.
> 
> Is there any way to get non-PCM dataranges with a PCM 
> datarange on the same pin factory, or to stop the non-PCM pin 
> factory from creating a device which the user can see?
> 
> If anything here is unclear, please let me know.
> 
> Philip Lukidis
> 
> 
> > -----Original Message-----
> > From: wdmaudiodev-bounce@xxxxxxxxxxxxx
> > [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx]On Behalf Of 
> Mitchell Rundle
> > Sent: Wednesday, January 03, 2007 3:24 PM
> > To: wdmaudiodev@xxxxxxxxxxxxx
> > Subject: [wdmaudiodev] Re: Vista and AC3
> >
> >
> > Philip, does your device only have a SPDIF jack or does it
> > have a speaker jack as well?
> >
> > Regards,
> > Mitch
> >
> > ________________________________________
> > From: wdmaudiodev-bounce@xxxxxxxxxxxxx
> > [wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Cheng-mean
> > Liu (SOCCER) [soccerl@xxxxxxxxxxxxx]
> > Sent: Wednesday, January 03, 2007 9:55 AM
> > To: wdmaudiodev@xxxxxxxxxxxxx
> > Subject: [wdmaudiodev] Re: Vista and AC3
> >
> > Hi Philip:
> >
> >   You can try the following ks topology in the same filter.
> >
> > PCM----->Vol-->Mute------------------------>pin 0
> >
> > AC3 ---->Vol(if it's supported)--->mute---->pin 1
> >
> > (Don't use and sum node to combine both streams before
> > reaching output pins, which might confuse mmdev's Topology parser)
> >
> > Thanks.
> >
> > Cheng-mean
> >
> > -----Original Message-----
> > From: wdmaudiodev-bounce@xxxxxxxxxxxxx
> > [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of 
> Philip Lukidis
> > Sent: Wednesday, January 03, 2007 8:39 AM
> > To: wdmaudiodev@xxxxxxxxxxxxx
> > Subject: [wdmaudiodev] Vista and AC3
> >
> > Hello.  I'm trying to get portcls wavecyclic based subdevices
> > (S/PDIF optical and coax) to expose both PCM and AC3
> > dataranges simultaneously on the same pin factory on Vista
> > (unlike XP, where I do not attempt this).  So far I'm not
> > having any luck; only PCM or non-PCM appear simultaneously in
> > KS Studio.
> >
> > My rationale for trying this is because unlike XP, when a pin
> > factory exposes a non-PCM format, it is displayed as an audio
> > device in the audio CPL.  This is quite useless as far as I
> > can see, because there is no configuration a user may do.  So
> > I'm left with a situation where there are two devices shown
> > in the audio CPL for each S/PDIF subdevice, where only one of
> > them is configurable.
> >
> > Is there a way to expose both AC3 and PCM dataranges on the
> > same pin factory, or, failing that, to hide the non-PCM
> > device in the audio CPL (unless there is a reason for it
> > appearing there)?
> >
> > thank you,
> >
> > Philip Lukidis
> > ******************
> >
> > 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/
> >
> > ******************
> >
> > 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/
> > ******************
> >
> > 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/
> >
> >
> ******************
> 
> 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/
> ******************
> 
> 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/
> 
> 
******************

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: