New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 9 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

AudioDevicePulseLinux should handle PA_STREAM_FAILED

Project Member Reported by pbos@webrtc.org, Feb 4 2014

Issue description

AudioDeviceLinuxPulse::PlayThreadProcess() locks indefinitely when pa_stream_get_state(_playStream) returns PA_STREAM_FAILED. The code expects PA_STREAM_READY to come sooner or later, which it doesn't when a stream fails.

Lines making this assumption: modules/audio_device/linux/audio_device_pulse_linux.cc, in AudioDeviceLinuxPulse::PlayThreadProcess():

// Wait for state change                                         
while (LATE(pa_stream_get_state)(_playStream) != PA_STREAM_READY)
{                                                                
    LATE(pa_threaded_mainloop_wait)(_paMainloop);                
}                                                                

 

Comment 1 by vrk@webrtc.org, Oct 14 2014

Labels: Area-Mic
Project Member

Comment 2 by juberti@webrtc.org, Jan 7 2015

Labels: -Area-Mic Area-GetUserMedia-Mic
Project Member

Comment 3 by juberti@webrtc.org, Jan 7 2015

Labels: -Area-GetUserMedia-Mic Mic
Project Member

Comment 4 by kjellander@webrtc.org, Dec 1 2016

Components: Audio
Owner: ----
Status: Available (was: Assigned)
Still a valid bug? Removing xians...
Project Member

Comment 5 by henrika@webrtc.org, Dec 1 2016

Cc: henrikg@webrtc.org
Labels: -Mic -Pri-2 OS-Linux Pri-3
Don't know the details of this code. The given design still exists (these files are very rarely modified) and AFAIK it does not cause any issues today. There are also several similar patterns in the same file for recording.

IMHO, we should only make modifications in this (test) code if we have a clear
case of a real existing issue.

Long term, I would like to rewrite (and simplify) all native audio implementations in WebRTC.


Project Member

Comment 6 by henrika@webrtc.org, Dec 1 2016

Owner: henrika@webrtc.org
Assigning to myself as a reminder of that these implementations might need some more work.
Project Member

Comment 7 by anatolid@webrtc.org, Dec 14 2016

Status: Assigned (was: Available)
Project Member

Comment 8 by henrika@webrtc.org, Mar 29 2017

Owner: solenberg@webrtc.org
I am unable to prioritize the Pulse implementation and therefore reassign to Fredrik for final decision on most suitable action.

To my knowledge, we have never been hit by the described issue and I don't know the details well enough to perform "blind" changes.
Project Member

Comment 9 by solenberg@webrtc.org, Apr 11

Owner: henrika@webrtc.org
Reassigning to Henrik as data point when considering refactoring work for the desktop audio integrations.

Sign in to add a comment