Patchwork [meta-fsl-arm,2/3] pulseaudio: Fix mutext issue when do pause in gstreamer

login
register
mail settings
Submitter Jun Zhu
Date July 29, 2014, 7:04 a.m.
Message ID <1406617455-16372-2-git-send-email-R01007@freescale.com>
Download mbox | patch
Permalink /patch/76823/
State Changes Requested
Delegated to: Otavio Salvador
Headers show

Comments

Jun Zhu - July 29, 2014, 7:04 a.m.
Pulseaudio crashes when other program using sound:
Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed
at pulsecore/mutex-posix.c:106, function pa_mutex_unlock().

Disable PTHREAD priority inheritance feature is the easiest
workaround solutions for this issue.

Signed-off-by: Jun Zhu <R01007@freescale.com>
---
 ...dio-mutex-issue-when-do-pause-in-gstreame.patch |   34 ++++++++++++++++++++
 .../pulseaudio/pulseaudio_5.0.bbappend             |    1 +
 2 files changed, 35 insertions(+)
 create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch
Otavio Salvador - July 29, 2014, 1:40 p.m.
On Tue, Jul 29, 2014 at 4:04 AM, Jun Zhu <R01007@freescale.com> wrote:
> Pulseaudio crashes when other program using sound:
> Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed
> at pulsecore/mutex-posix.c:106, function pa_mutex_unlock().
>
> Disable PTHREAD priority inheritance feature is the easiest
> workaround solutions for this issue.
>
> Signed-off-by: Jun Zhu <R01007@freescale.com>

I think you can accomplish the same using:

pulseaudio_cv_PTHREAD_PRIO_INHERIT=no

in CACHED_CONFIGUREVARS as:

CACHED_CONFIGUREVARS_append_mx6 = "
pulseaudio_cv_PTHREAD_PRIO_INHERIT=no"

Can you give it a try?

Patch

diff --git a/recipes-multimedia/pulseaudio/pulseaudio/0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch b/recipes-multimedia/pulseaudio/pulseaudio/0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch
new file mode 100644
index 0000000..67bc46f
--- /dev/null
+++ b/recipes-multimedia/pulseaudio/pulseaudio/0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch
@@ -0,0 +1,34 @@ 
+From c21e24f5c53e81fc715905c54a6c82b69e397e63 Mon Sep 17 00:00:00 2001
+From: "shengjiu.wang" <b02247@freescale.com>
+Date: Thu, 3 Apr 2014 14:22:02 +0800
+Subject: [PATCH] Fix pulseaudio mutex issue when do pause in gstreamer
+
+The error log is "Assertion 'pthread_mutex_unlock(&m->mutex) == 0'
+failed at pulsecore/mutex-posix.c:106, function pa_mutex_unlock(). Aborting"
+
+This fix is a workaround base on the solution from this link "
+https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/932096"
+
+Upstream status: N/A
+  - It is i.MX specific
+
+Signed-off-by: shengjiu.wang <b02247@freescale.com>
+---
+ src/pulsecore/mutex-posix.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/pulsecore/mutex-posix.c b/src/pulsecore/mutex-posix.c
+index 36c2787..d592501 100644
+--- a/src/pulsecore/mutex-posix.c
++++ b/src/pulsecore/mutex-posix.c
+@@ -30,6 +30,7 @@
+ #include <pulsecore/macro.h>
+ 
+ #include "mutex.h"
++#undef HAVE_PTHREAD_PRIO_INHERIT
+ 
+ struct pa_mutex {
+     pthread_mutex_t mutex;
+-- 
+1.7.9.5
+
diff --git a/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend b/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend
index 993c340..4ea4921 100644
--- a/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend
+++ b/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend
@@ -5,6 +5,7 @@  FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
 SRC_URI_append = " file://daemon.conf \
         file://default.pa \
+        file://0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch \
 "
 
 do_install_append() {