On Wed, Dec 22, 2010 at 9:48 PM, Anssi Hannula anssi.hannula@iki.fi wrote:
On 23.12.2010 04:22, VDR User wrote:
Hi. After updating my stable kernel from 2.6.35.7 to 2.6.36.2, I get a problem when tuning HDTV channels that use surround sound. The error I get is as follows:
audio_alsa_out: Cannot set number of channels to 6 (err=-22:Invalid argument) audio_out: open failed!
With the following xine error: ---------------------- (ERROR) ---------------------- The audio device is unavailable. Please verify if another program already uses it.
['Audio device unavailable' ''] ------------------ (END OF ERROR) -------------------
What are the contents of /proc/asound/NVidia/eld* and /proc/asound/NVidia/codec* ?
Booted into 2.6.35.7 with receiver ON: $ cat /proc/asound/NVidia_1/eld* monitor_present 1 eld_valid 1 monitor_name SONY AVAMP
connection_type HDMI eld_version [0x2] CEA-861D or below edid_version [0x3] CEA-861-B, C or D manufacture_id 0xd94d product_id 0xfb01 port_id 0x20000 support_hdcp 0 support_ai 0 audio_sync_delay 0 speakers [0x5f] FL/FR LFE FC RL/RR RC RLC/RRC sad_count 6 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 6 sad1_rates [0x1ee0] 44100 48000 88200 176400 192000 384000 sad1_bits [0xe0000] 16 20 24 sad2_coding_type [0x1] LPCM sad2_channels 8 sad2_rates [0x1ee0] 44100 48000 88200 176400 192000 384000 sad2_bits [0xe0000] 16 20 24 sad3_coding_type [0x2] AC-3 sad3_channels 6 sad3_rates [0xe0] 44100 48000 88200 sad3_max_bitrate 680000 sad4_coding_type [0x7] DTS sad4_channels 6 sad4_rates [0x6e0] 44100 48000 88200 176400 192000 sad4_max_bitrate 1536000 sad5_coding_type [0xa] E-AC-3/DD+ (Dolby Digital Plus) sad5_channels 8 sad5_rates [0xc0] 48000 88200
Booted into 2.6.35.7 with receiver OFF: $ cat /proc/asound/NVidia_1/eld* monitor_present 1 eld_valid 1 monitor_name SONY AVAMP
connection_type HDMI eld_version [0x2] CEA-861D or below edid_version [0x3] CEA-861-B, C or D manufacture_id 0xd94d product_id 0xfb01 port_id 0x20000 support_hdcp 0 support_ai 0 audio_sync_delay 0 speakers [0xffff] FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC FLW/FRW FLH/FRH TC FCH sad_count 1 sad0_coding_type [0x1] LPCM sad0_channels 2 sad0_rates [0xe0] 44100 48000 88200 sad0_bits [0x20000] 16
$ cat /proc/asound/NVidia_1/codec* Codec: Nvidia GPU 0a HDMI/DP Address: 1 Function Id: 0x1 Vendor Id: 0x10de000a Subsystem Id: 0x10de0101 Revision Id: 0x100100 No Modem Function Group found Default PCM: rates [0x0]: bits [0x0]: formats [0x0]: Default Amp-In caps: N/A Default Amp-Out caps: N/A GPIO: io=0, o=0, i=0, unsolicited=0, wake=0 Node 0x04 [Audio Output] wcaps 0x72b1: 8-Channels Digital Stripe CP Control: name="IEC958 Playback Con Mask", index=0, device=0 Control: name="IEC958 Playback Pro Mask", index=0, device=0 Control: name="IEC958 Playback Default", index=0, device=0 Control: name="IEC958 Playback Switch", index=0, device=0 Device: name="NVIDIA HDMI", type="HDMI", device=3 Converter: stream=6, channel=0 Digital: Enabled Digital category: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 Node 0x05 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x40: OUT Unsolicited: tag=05, enabled=1 Connection: 1 0x04
I'm certain at the time I experienced this error, my receiver was turned off, could this be the cause of the error? If so, this really needs to be fixed/reworked as many people don't have their receivers on (to save power usage, noise, etc) unless they specifically need/want it. In the event a receiver is off and the user is trying to watch something that requires more then 2 channels, he should either turn the receiver on, or adjust the speaker arrangement in xine to stereo -- however, what should not happen is the alsa driver failing. Maybe a better solution would be to log an error to syslog or something rather then the driver itself returning an error?
Best regards, Derek