[Alsa-user] ARC over HDMI. 1.4
Brought to you by:
perex
From: Gary D. <gar...@gm...> - 2011-12-22 18:32:54
|
Good Morning, I have my system set up using the TV (Samsung) as the monitor through HDMI. I have to keep it this way for other reasons having to do with receiver so going through the receiver is not an option at the moment. Anyway, the problem is that I am using the audio return line on the TV in order to output sound. I have my system set up so that sound comes out of the speakers (two front) in the desktop and, if using pcm, through all of the speakers. My problem is that the sound should be able to come through all the speakers from the desktop. And, what I think, is the real problem is the probing done for sound through the HDMI system. When my Fedora 16 system starts up and I go into X I can see that /proc/asound/card0/eld#1.0 is: monitor_present 1 eld_valid 1 monitor_name SAMSUNG connection_type HDMI eld_version [0x2] CEA-861D or below edid_version [0x3] CEA-861-B, C or D manufacture_id 0x2d4c product_id 0x6c6 port_id 0x20000 support_hdcp 0 support_ai 0 audio_sync_delay 0 speakers [0x1] FL/FR sad_count 1 sad0_coding_type [0x1] LPCM sad0_channels 2 sad0_rates [0xe0] 44100 48000 88200 sad0_bits [0xe0000] 16 20 24 When I connect up the system directly to the receiver I get: monitor_present 1 eld_valid 1 monitor_name HT-RC260 connection_type HDMI eld_version [0x2] CEA-861D or below edid_version [0x3] CEA-861-B, C or D manufacture_id 0xcb3d product_id 0xa65 port_id 0x20000 support_hdcp 0 support_ai 0 audio_sync_delay 0 speakers [0x4f] FL/FR LFE FC RL/RR RLC/RRC sad_count 8 sad0_coding_type [0x1] LPCM sad0_channels 2 sad0_rates [0x1ee0] 44100 48000 88200 176400 192000 384000 sad0_bits [0xe0000] 16 20 24 sad1_coding_type [0x1] LPCM sad1_channels 8 sad1_rates [0x1ee0] 44100 48000 88200 176400 192000 384000 sad1_bits [0xe0000] 16 20 24 sad2_coding_type [0x2] AC-3 sad2_channels 8 sad2_rates [0xe0] 44100 48000 88200 sad2_max_bitrate 640000 sad3_coding_type [0x7] DTS sad3_channels 8 sad3_rates [0xc0] 48000 88200 sad3_max_bitrate 1536000 sad4_coding_type [0x9] DSD (One Bit Audio) sad4_channels 6 sad4_rates [0x40] 48000 sad5_coding_type [0xa] E-AC-3/DD+ (Dolby Digital Plus) sad5_channels 8 sad5_rates [0xc0] 48000 88200 sad6_coding_type [0xb] DTS-HD sad6_channels 8 sad6_rates [0x1ec0] 48000 88200 176400 192000 384000 sad7_coding_type [0xc] MLP (Dolby TrueHD) sad7_channels 8 sad7_rates [0x1480] 88200 192000 What I would like to do is have the second one come up because I am using the audio return in HDMI 1.4. I know I can make a script like: (I know there are other ways as well, this took two seconds in VI.) echo eld_version 0x2 > /proc/asound/card0/eld#1.0 echo edid_version 0x3 > /proc/asound/card0/eld#1.0 echo speakers 0x4f > /proc/asound/card0/eld#1.0 echo sad_count 8 > /proc/asound/card0/eld#1.0 echo sad0_coding_type 0x1 > /proc/asound/card0/eld#1.0 echo sad0_channels 2 > /proc/asound/card0/eld#1.0 echo sad0_rates 0x1ee0 > /proc/asound/card0/eld#1.0 echo sad0_bits 0xe0000 > /proc/asound/card0/eld#1.0 echo sad1_coding_type 0x1 > /proc/asound/card0/eld#1.0 echo sad1_channels 8 > /proc/asound/card0/eld#1.0 echo sad1_rates 0x1ee0 > /proc/asound/card0/eld#1.0 echo sad1_bits 0xe0000 > /proc/asound/card0/eld#1.0 echo sad2_coding_type 0x2 > /proc/asound/card0/eld#1.0 echo sad2_channels 8 > /proc/asound/card0/eld#1.0 echo sad2_rates 0xe0 > /proc/asound/card0/eld#1.0 echo sad2_max_bitrate 640000 > /proc/asound/card0/eld#1.0 echo sad3_coding_type 0x7 > /proc/asound/card0/eld#1.0 echo sad3_channels 8 > /proc/asound/card0/eld#1.0 echo sad3_rates 0xc0 > /proc/asound/card0/eld#1.0 echo sad3_max_bitrate 1536000 > /proc/asound/card0/eld#1.0 echo sad4_coding_type 0x9 > /proc/asound/card0/eld#1.0 echo sad4_channels 6 > /proc/asound/card0/eld#1.0 echo sad4_rates 0x40 > /proc/asound/card0/eld#1.0 echo sad5_coding_type 0xa > /proc/asound/card0/eld#1.0 echo sad5_channels 8 > /proc/asound/card0/eld#1.0 echo sad5_rates 0xc0 > /proc/asound/card0/eld#1.0 echo sad6_coding_type 0xb > /proc/asound/card0/eld#1.0 echo sad6_channels 8 > /proc/asound/card0/eld#1.0 echo sad6_rates 0x1ec0 > /proc/asound/card0/eld#1.0 echo sad7_coding_type 0xc > /proc/asound/card0/eld#1.0 echo sad7_channels 8 > /proc/asound/card0/eld#1.0 echo sad7_rates 0x1480 > /proc/asound/card0/eld#1.0 and that works fine. Then I can play stuff through more than two speakers ("speakers [0x1] FL/FR" vs. "speakers [0x4f] FL/FR LFE FC RL/RR RLC/RRC") using aplay and speaker-test and such but by that time the desktop is running because I have to log into X in order to get the alsa system started. So I guess the question would be, "Is there a way to do this before or during alsa starting up and if so is there anything else I should be worried about?" Gary |