[alsa-devel] HDMI audio: TV vs. codec supported sample rates

Anssi Hannula anssi.hannula at iki.fi
Thu Aug 5 12:57:18 CEST 2010


Takashi Iwai kirjoitti torstai, 5. elokuuta 2010 13:46:39:
> At Thu, 5 Aug 2010 12:49:07 +0300,
> 
> Anssi Hannula wrote:
> > Anssi Hannula kirjoitti tiistai, 3. elokuuta 2010 20:39:20:
> > > Stephen Warren kirjoitti tiistai, 3. elokuuta 2010 19:20:24:
> > > > I don't see anything in patch_intelhdmi.c that relates to sample rate
> > > > support at all. However, I see that patch_nvhdmi.c contains e.g.:
> > > > 
> > > > static struct hda_pcm_stream nvhdmi_pcm_digital_playback_8ch_89 = {
> > > > 
> > > >         .substreams = 1,
> > > >         .channels_min = 2,
> > > >         .rates = SUPPORTED_RATES,
> > > > 
> > > > Should .rates not be initialized here,
> > > 
> > > When .rates is not initialized, they are automatically read from the
> > > codec, i.e. exactly the values you referenced above from
> > > "/proc/asound/card1/codec#1".
> > > 
> > > The values seem to differ (32000 vs 22050 is reported as supported),
> > > though. If the codec reported values are wrong, the .rates should be
> > > kept. Otherwise the rates set in .rates should be fixed or the
> > > override just removed.
> > 
> > As AFAICS HDMI specification allows 32000Hz but not 22050Hz, I'd say it
> > is likely that the override is wrong and the codec reported rates are
> > right.
> > 
> > (my receiver doesn't support 32000Hz so I can't confirm).
> 
> So, the codec reports correct values based on EDID?

No. The codec reports all the values it supports, regardless if the attached 
HDMI sink supports them or not.

> IIRC, the static values there were needed for old Nvidia codecs that
> don't give the actual values.  Maybe newer chips work correctly.
> If so, rates, maxbps and formats in *_89 (also *_7x, too?) can be
> removed, indeed.
> 
> Can any confirm?

I have an older MCP7A codec as well and can confirm that it reports wrong 
values (only 48000/88200, while I can confirm in reality 192000 works with 
it). Though I guess the nonsensical 22050 should probably be 32000 (but I 
can't test since my receiver doesn't support 32000).

-- 
Anssi Hannula


More information about the Alsa-devel mailing list