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 5 users
Status: Assigned
NextAction: ----
OS: Linux
Pri: 3
Type: Bug

Sign in to add a comment
AudioDevicePulseLinux should handle PA_STREAM_FAILED
Project Member Reported by, Feb 4 2014 Back to list
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/, in AudioDeviceLinuxPulse::PlayThreadProcess():

// Wait for state change                                         
while (LATE(pa_stream_get_state)(_playStream) != PA_STREAM_READY)

Comment 1 by, Oct 14 2014
Labels: Area-Mic
Project Member Comment 2 by, Jan 7 2015
Labels: -Area-Mic Area-GetUserMedia-Mic
Project Member Comment 3 by, Jan 7 2015
Labels: -Area-GetUserMedia-Mic Mic
Project Member Comment 4 by, Dec 1 2016
Components: Audio
Owner: ----
Status: Available
Still a valid bug? Removing xians...
Project Member Comment 5 by, Dec 1 2016
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, Dec 1 2016
Assigning to myself as a reminder of that these implementations might need some more work.
Project Member Comment 7 by, Dec 14 2016
Status: Assigned
Project Member Comment 8 by, Mar 29 2017
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.
Sign in to add a comment