audioadapter on playback only cards.

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
Report Content as Inappropriate

audioadapter on playback only cards.

This post was updated on .
I've opened an issue on github.com.


Currently, I try to use the build-in speakers of my tv as center speaker for a distributed sound setup.
These appear as hdmi:CARD=NVidia,DEV=1 onon a GTX 750 card.
Obviously, the "Nvidia" card has only playback channels represented as /dev/snd/pcmC1D{3,7,8}p.

When I run `jack_load audioadapter -i "-d hw:1,3 -i 0 -o 2"` it fails at

../linux/alsa/JackAlsaAdapter.h:225, alsa error -2 : No such file or directory

which could be strace'd as

16332 stat("/usr/share/alsa/alsa.conf", {st_mode=S_IFREG|0644, st_size=9665, ...}) = 0
16332 mprotect(0x7fa4c40ed000, 4096, PROT_READ|PROT_WRITE) = 0                  
16332 open("/dev/snd/controlC1", O_RDONLY|O_CLOEXEC) = 9                        
16332 fcntl(9, F_SETFD, FD_CLOEXEC)     = 0                                      
16332 ioctl(9, SNDRV_CTL_IOCTL_CARD_INFO, 0x7fa4ce3ee040) = 0                    
16332 close(9)                          = 0                                      
16332 open("/dev/snd/controlC1", O_RDWR|O_CLOEXEC) = 9                          
16332 fcntl(9, F_SETFD, FD_CLOEXEC)     = 0                                      
16332 ioctl(9, SNDRV_CTL_IOCTL_PVERSION, 0x7fa4ce3ee1c4) = 0                    
16332 ioctl(9, SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE, 0x7fa4ce3ee22c) = 0        
16332 open("/dev/snd/pcmC1D3c", O_RDWR|O_NONBLOCK|O_CLOEXEC) = -1 ENOENT (No such file or directory)
16332 close(9)                          = 0                                      

Looking at jack-1.9.10/linux/alsa/JackAlsaAdapter.h line 225 and follwoing (inside open()) its full of unconditional input and output setup code. Imho open() should respect the in/out channel selection ("-i 0" or "-o 0") to ommit opening/configuring unwanted stream direction.

Can i circumnavigate this in anyway or do I need to patch open() the code?

Thanks in advance.


p.s. I've gained some experience using jack+ardour with multiple soundcards (5.1 cinema audience plus control room speaker) and using netjack2 for a multi-host surround setup at home.