[wdmaudiodev] Re: Max Number of Channels of a HDMI device

  • From: "Jeff Pages" <barefeet@xxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 28 Dec 2012 14:41:38 +1100

For a render device, I'm pretty sure you also need to support KSPROPERTY_AUDIO_CHANNEL_CONFIG and KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY on your DAC node.


Jeff


From: JimiYeh@xxxxxxxxxx
Sent: Friday, December 28, 2012 1:06 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Max Number of Channels of a HDMI device


I have overrided the default data intersection handler. I can output 8 channel PCM actually.

But I don’t know why “Max Number of Channels” is always 2.





From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
Sent: Friday, December 28, 2012 12:43 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Max Number of Channels of a HDMI device





Since you support more than two channels, you also need to override the default data intersection handler.



http://msdn.microsoft.com/en-us/library/windows/hardware/ff536252(v=vs.85).aspx

The current implementation of the port driver's default handler is limited in the types of data ranges that it can handle:

·         Only PCM data formats

·         Only mono and stereo audio streams

An adapter driver that supports non-PCM or multichannel formats should implement a proprietary data-intersection handler instead of relying on the port driver to handle data intersections for these formats.







From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of JimiYeh@xxxxxxxxxx
Sent: Wednesday, December 26, 2012 11:55 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Max Number of Channels of a HDMI device





Hi all,



I am trying to write a WaveRT driver for HDMI on window7. I need to report my data range according to the HDMI sink device

(Ex: monitor, amplifier, …). When I attached the amplifier which can support 8 channel, The control panel will show the information

about the amplifier. I can see the correct sample size range, frequency range except “Max number of Channels”. “Max Number of Channels”

is 2. I have checked my data range in my code. I’m sure I set the MaximumChannels is 8.





     if(myELD->GetFormatSupport(LPCM))

     {

DataRangeAudio[LPCM].DataRange.FormatSize = sizeof(KSDATARANGE_AUDIO);

             DataRangeAudio[LPCM].DataRange.Flags         = 0;

             DataRangeAudio[LPCM].DataRange.SampleSize    = 0;

             DataRangeAudio[LPCM].DataRange.Reserved      = 0;

DataRangeAudio[LPCM].DataRange.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;

DataRangeAudio[LPCM].DataRange.SubFormat = KSDATAFORMAT_SUBTYPE_PCM;

DataRangeAudio[LPCM].DataRange.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;



DataRangeAudio[LPCM].MaximumChannels = myELD->GetFormatMaxChannel(LPCM);

DOUT(DBGJimi, ("Max Channel : %d", DataRangeAudio[LPCM].MaximumChannels)); // the debug message is 8

DataRangeAudio[LPCM].MinimumBitsPerSample = myELD->GetFormatMinBitDepth(LPCM);

DataRangeAudio[LPCM].MaximumBitsPerSample = myELD->GetFormatMaxBitDepth(LPCM);

DataRangeAudio[LPCM].MinimumSampleFrequency = myELD->GetFormatMinFrequency(LPCM);

DOUT(DBGJimi, ("Min rate : %d", DataRangeAudio[LPCM].MinimumSampleFrequency));

DataRangeAudio[LPCM].MaximumSampleFrequency = myELD->GetFormatMaxFrequency(LPCM);

DOUT(DBGJimi, ("Max rate : %d", DataRangeAudio[LPCM].MaximumSampleFrequency));

pKsDataRange[DataRangeIndex] = reinterpret_cast<KSDATARANGE*>(&DataRangeAudio[LPCM]);

               DataRangeIndex++;

     }



Thank you.



Best Regards,

Jimi

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

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: