Re: [Alsa-user] [Intel-gfx] Problems with HDMI audio on Intel DG45FC motherboard
Brought to you by:
perex
From: David H. <da...@ha...> - 2009-10-26 23:11:41
|
On Tue, Oct 20, 2009 at 03:43:53PM -0700, Shane W wrote: > On Tue, Oct 20, 2009 at 09:26:00AM +0800, Wu Fengguang wrote: > > HDMI codec/sink seem to take some time to response to the output > > enable and new infoframe, so there are some delay. I've moved the HDMI > > output enable command to module load time, this helps. The infoframe > > is in theory created in run time based on the format of _each_ new > > audio stream, so infoframe transmission has to be started/stopped > > for each track.. > > I know this has come up before but can't we not start/stop > the infoframe if the sample format on the new track is the > same as the old. I mean playing an album, you're gonna get > 44100, 2ch s16le 95% of the time so that would atleast > cause the problem to appear much less. Tried it, still had the second-track-produces-silence bug on my receiver so I couldn't test it properly. I however did manage to create a different patch which fixed my receiver bug (yay!)...by sending "refer-to-stream-header" audio infoframes from pcm close to pcm open...something like this quick hack: --- linux-2.6.32-rc5/sound/pci/hda/patch_intelhdmi.c 2009-10-16 02:41:50.000000000 +0200 +++ ../linux-2.6.32-rc5/sound/pci/hda/patch_intelhdmi.c 2009-10-26 23:39:54.000000000 +0100 @@ -552,8 +552,16 @@ struct snd_pcm_substream *substream) { struct intel_hdmi_spec *spec = codec->spec; + struct hdmi_audio_infoframe ai = { + .type = 0x84, + .ver = 0x01, + .len = 0x0a, + .CC02_CT47 = 0x00, + }; hdmi_stop_infoframe_trans(codec); + hdmi_fill_audio_infoframe(codec, &ai); + hdmi_start_infoframe_trans(codec); return snd_hda_multi_out_dig_close(codec, &spec->multiout); } @@ -571,6 +579,7 @@ hdmi_set_channel_count(codec, substream->runtime->channels); + hdmi_stop_infoframe_trans(codec); hdmi_setup_audio_infoframe(codec, substream); return 0; Not sure how/if something like that could be turned into an acceptable patch though... -- David Härdeman |