[Bug 743912] New: pulse audio sink report server is dead when doing audio track switching
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Feb 3 01:16:41 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=743912
GStreamer | gst-plugins-good | 1.4.1
Summary: pulse audio sink report server is dead when doing
audio track switching
Classification: Platform
Product: GStreamer
Version: 1.4.1
OS/Version: Windows
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-good
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: lj.qfy.sh at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
This issue is reproduced by switch two audio track with different sample rate
repeatly, finally will report:" Error: Disconnected: Bad state"
It's from function gst_pulsering_is_dead().
The reason is two threads race condition, when switch two audio track with
differnt caps, audio base will set new caps to pulsesink, then two threads will
have race condition.
The first thread is gst_pulsesink_get_time(), the other is
gst_audio_base_sink_setcaps(). In gst_audio_base_sink_setcaps, it will release
audio ring buffer, which will finally release pulse audio stream. But in
gst_pulsesink_get_time(), it will call gst_pulsering_is_dead() to check if
pbuf->stream is still valid, if invalid will report server is dead.
So need to check if pa stream is still alive in gst_pulsesink_get_time().
Patch is attached.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list