Cannot open the same soundcard for Output and Vinyl Control when using OSS API
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Won't Fix
|
High
|
Unassigned |
Bug Description
When I try to open the same soundcard for Vinyl Control Input as the card I'm using for Output Mixxx hangs.
Apparently it is some kind of deadlock in libportaudio:
Thread 1 (Thread 0x7fcadb9ac7a0 (LWP 24697)):
#0 0x00007fcad63913c1 in sem_wait () from /lib/libpthread
#1 0x00007fcad65b75bd in ?? () from /usr/lib/
#2 0x0000000000612c98 in SoundDevicePort
at src/sounddevice
#3 0x0000000000607ea1 in SoundManager:
Before it hangs I usually get the following error message (dialog box):
Configuration Error:
Audio device could not be opened
Steps to Reproduce:
* Choose the OSS API in Sound Hardware
* Select a multiple out soundcard for Deck 1 (ch1/ch2)
* Select the same card for Deck2 (ch3/ch4)
* Select the same card for Vinyl Control
* Ignore the Dialog (the drop down does not revert to None anyways)
* Select the Channels for Vinyl Control on that card
Expected Result:
No Hang, No error, just plain old good full duplex sound.
Actual Result:
Dialog Box Error. The Dropdown is *NOT* reset. Hang on selecting the channels.
This may or may not be related to a slew of old bugs.
Changed in mixxx: | |
status: | New → Won't Fix |
This part of the mixxx.log might be relevant:
Debug: [Main]: PortAudio: Started stream successfully edForOutput: 1 edForInput: 0 :setupDevices( ) Audio:: open() "1, /dev/dsp1"
Debug: [Main]: iNumDevicesOpen
Debug: [Main]: iNumDevicesOpen
Debug: [Main]: Displaying mixxx
Debug: [Main]: Running Mixxx
Debug: [Main]: select()
Debug: [Main]: select()
Debug: [Main]: select()
Debug: [Main]: select()
Debug: [Main]: Setting vinyl device #2's channels to: ""
Debug: [Main]: SoundManager:
Debug: [Main]: Building timecode lookup tables...
Debug: [Main]: Starting vinyl control xwax thread
Debug: [Main]: Building timecode lookup tables...
Debug: [Main]: Starting vinyl control xwax thread
Debug: [Main]: SoundDevicePort
Debug: [Main]: m_dSampleRate 44100
Debug: [Main]: iLatencyMSec: 5
Debug: [Main]: output channels: 4 | input channels: 2
Debug: [Main]: iFramesPerBuffer 256
Debug: [Main]: iLatencyMSec: 5
Debug: [Main]: Opening stream with id 1
Debug: [Main]: Error opening stream: Invalid number of channels
That's when the Dialog Error shows up.
The Log for the hang is here:
Debug: [Main]: select() :setupDevices( ) Audio:: open() "1, /dev/dsp1"
Debug: [Main]: Setting vinyl device #2's channels to: "2"
Debug: [Main]: SoundManager:
Debug: [Main]: Building timecode lookup tables...
Debug: [Main]: Starting vinyl control xwax thread
Debug: [Main]: Building timecode lookup tables...
Debug: [Main]: Starting vinyl control xwax thread
Debug: [Main]: SoundDevicePort
Debug: [Main]: m_dSampleRate 44100
Debug: [Main]: iLatencyMSec: 5
Debug: [Main]: output channels: 4 | input channels: 4
Debug: [Main]: iFramesPerBuffer 256
Debug: [Main]: iLatencyMSec: 5
Debug: [Main]: Opening stream with id 1
Debug: [Main]: Opened PortAudio stream successfully... starting
Debug: [Main]: Dynamically loaded PortAudio library!