Re: IEC61937 passthrough with BYT/CHT HdmiLpeAudio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 08/16/2017 10:52 AM, Takashi Iwai wrote:
On Wed, 16 Aug 2017 17:15:09 +0200,
Pierre-Louis Bossart wrote:
Hi Takashi,

While I was looking at IEC61937, I ran a quick test on my BYT and CHT
boxes, and as I suspected IEC61937 works fine since your modifications
to add s16_le support. I can get AC3 to my HDMI receiver without
problems just by using the hw:0,<1,2,3> device, depending on which
port is used.

e.g. aplay  -Dhw:0,2 -c2 -r48000 -fs16le ac3_surround_test.spdif

To make things more usable for applications, and maybe support
receivers who actually care about the AES0 non-audio bit or reduce the
initial lock time, it'd be nice to support the traditional command
line, e.g.

aplay -D'hdmi:CARD=0,DEV=<0,1,2>,AES0=0x6' -c2 -r48000 -fs16_le
ac3_surround_test.spdif

However we seem to have a mix of alsa-lib configuration issues and
maybe a miss at the driver level
Yeah, alsa-lib config is still not updated to follow the recent
changes in kernel side.  It needs multiple HDMI entries.


I added the missing devices in HdmiLpeAudio.conf with the patch below,
which helps select the right output, but somehow the AES0 non-audio
bit doesn't seem to be set.

[plb@ZOTAC PASSTHROUGH]$ amixer -Dhw:0 cget numid=12
numid=12,iface=PCM,name='IEC958 Playback Default',device=2
   ; type=IEC958,access=rw------,values=1
   : values=[AES0=0x00 AES1=0x00 AES2=0x00 AES3=0x00]
[plb@ZOTAC PASSTHROUGH]$ aplay -D'hdmi:CARD=0,DEV=2,AES0=0x6' -c2
-r48000 -fs16_le ac3_surround_test.spdif
Playing raw data 'ac3_surround_test.spdif' : Signed 16 bit Little
Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...
[plb@ZOTAC PASSTHROUGH]$ amixer -Dhw:0 cget
numid=12numid=12,iface=PCM,name='IEC958 Playback Default',device=2
   ; type=IEC958,access=rw------,values=1
   : values=[AES0=0x00 AES1=0x00 AES2=0x00 AES3=0x00]
Did you check the value during the playback?
Since you set "preserve" in HDMI config, the old value gets restored
at closing the PCM.
yes, that was the issue, thanks. I'll send a patch just now, it works fine


thanks,

Takashi


Could it be that we are missing the 'index' which is used in the
HDaudio case to access the 'IEC958 Playback Default' controls?

Thanks

-Pierre

diff HdmiLpeAudio.conf /usr/share/alsa/cards/HdmiLpeAudio.conf
59,135d58
<                 device 0
<                 lock true
<                 preserve true
<                 value [ $AES0 $AES1 $AES2 $AES3 ]
<             }
<         ]
<     }
< }
<
< HdmiLpeAudio.pcm.hdmi.1 {
<     @args [ CARD AES0 AES1 AES2 AES3 ]
<     @args.CARD {
<         type string
<     }
<     @args.AES0 {
<         type integer
<     }
<     @args.AES1 {
<         type integer
<     }
<     @args.AES2 {
<         type integer
<     }
<     @args.AES3 {
<         type integer
<     }
<     type hooks
<     slave.pcm {
<         type hw
<         card $CARD
<         device 1
<     }
<     hooks.0 {
<         type ctl_elems
<         hook_args [
<             {
<                 interface PCM
<                 name "IEC958 Playback Default"
<                 device 1
<                 lock true
<                 preserve true
<                 value [ $AES0 $AES1 $AES2 $AES3 ]
<             }
<         ]
<     }
< }
<
< HdmiLpeAudio.pcm.hdmi.2 {
<     @args [ CARD AES0 AES1 AES2 AES3 ]
<     @args.CARD {
<         type string
<     }
<     @args.AES0 {
<         type integer
<     }
<     @args.AES1 {
<         type integer
<     }
<     @args.AES2 {
<         type integer
<     }
<     @args.AES3 {
<         type integer
<     }
<     type hooks
<     slave.pcm {
<         type hw
<         card $CARD
<         device 2
<     }
<     hooks.0 {
<         type ctl_elems
<         hook_args [
<             {
<                 interface PCM
<                 name "IEC958 Playback Default"
<                 device 2


_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux