[alsa-devel] Bug in setting channels, related to recent ELD/EDID changes?

VDR User user.vdr at gmail.com
Tue Jan 4 17:41:31 CET 2011


On Sun, Jan 2, 2011 at 2:16 AM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
> Hi!
>
> Takashi, it seems the "allow all when not plugged in" behaviour you
> implemented in bbbe3390 is not enough to allow applications to open the
> device before the output device is ready. Switched-off A/V receivers may
> provide the information of the plugged-in television which usually
> restricts the max_channels to 2, causing applications to fail opening
> the device with more channels when a the A/V receiver is switched off.
>
> Also, even if the application can gracefully fallback to stereo, AFAIK
> there is no method for an application to get informed when the
> limitation is lifted, so it can't automatically resume multichannel
> output when the A/V receiver is switched on again.
>
> Based on this info, I guess the restrictions based on ELD should be
> removed :/
> Unless you have some other ideas to fix the issue, of course.
>
>
> On 23.12.2010 09:13, VDR User wrote:
>> On Wed, Dec 22, 2010 at 9:48 PM, Anssi Hannula <anssi.hannula at 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
>>
>> 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?
>
> A/V receivers showing TV information is indeed something that wasn't
> thought about :(

This has certainly caused problems.  Anyone thought of a way to
resolve it, or better yet reversed the patch that created the
situation?

Thanks,
Derek


More information about the Alsa-devel mailing list