[wdmaudiodev] Re: Vista and AC3

  • From: Mitchell Rundle <mitchr@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 3 Jan 2007 14:02:35 -0800

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/

Other related posts: