diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch new file mode 100644 index 000000000..472c5e66f --- /dev/null +++ b/meta-digi-dey/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" +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 +--- + 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 + + #include "mutex.h" ++#undef HAVE_PTHREAD_PRIO_INHERIT + + struct pa_mutex { + pthread_mutex_t mutex; +-- +1.7.9.5 + diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-mixer-make-the-mono-mapping-a-fallback-only.patch b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-mixer-make-the-mono-mapping-a-fallback-only.patch new file mode 100755 index 000000000..ac3955c0b --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-mixer-make-the-mono-mapping-a-fallback-only.patch @@ -0,0 +1,88 @@ +From 3455d62e4906174e83bf0ea9af8b584808d3e779 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Fri, 1 Jun 2018 11:24:01 +0300 +Subject: [PATCH] alsa-mixer: make the mono mapping a fallback only + +If a sound card doesn't have the "front" device defined for it, we have +to use the "hw" device for stereo. Not so long ago, the analog-stereo +mapping had "hw:%f" in its device-strings and everything worked great, +except that it caused trouble with the Intel HDMI LPE driver that uses +the first "hw" device for HDMI, and we were incorrectly detecting it as +an analog device. That problem was fixed in commit ea3ebd09, which +removed "hw:%f" from analog-stereo and added a new stereo fallback +mapping for "hw". + +Now the problem is that if a sound card doesn't have the "front" device +defined for it, and it supports both mono and stereo, only the mono +mapping is used, because the stereo mapping is only a fallback. This +patch makes the mono mapping a fallback too, so the mono mapping is used +only if there's absolutely nothing else that works. + +This can cause trouble at least in theory. Maybe someone actually wants +to use mono output on a card that supports both mono and stereo. But +that seems quite unlikely. + +Upstream-Status: Backport from v13.0 +--- + src/modules/alsa/alsa-mixer.c | 1 + + .../alsa/mixer/profile-sets/default.conf | 18 ++++++++++-------- + 2 files changed, 11 insertions(+), 8 deletions(-) + +diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c +index a07c435111f2..7d50fc7b89e7 100644 +--- a/src/modules/alsa/alsa-mixer.c ++++ b/src/modules/alsa/alsa-mixer.c +@@ -4060,6 +4060,7 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) { + static const struct description_map well_known_descriptions[] = { + { "analog-mono", N_("Analog Mono") }, + { "analog-stereo", N_("Analog Stereo") }, ++ { "mono-fallback", N_("Mono") }, + { "stereo-fallback", N_("Stereo") }, + /* Note: Not translated to "Analog Stereo Input", because the source + * name gets "Input" appended to it automatically, so adding "Input" +diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf +index f50938309e7d..34c51bc5bf0a 100644 +--- a/src/modules/alsa/mixer/profile-sets/default.conf ++++ b/src/modules/alsa/mixer/profile-sets/default.conf +@@ -101,13 +101,6 @@ + [General] + auto-profiles = yes + +-[Mapping analog-mono] +-device-strings = hw:%f +-channel-map = mono +-paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono +-paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic +-priority = 7 +- + [Mapping analog-stereo] + device-strings = front:%f + channel-map = left,right +@@ -115,7 +108,7 @@ paths-output = analog-output analog-output-lineout analog-output-speaker analog- + paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic + priority = 15 + +-# If everything else fails, try to use hw:0 as a stereo device. ++# If everything else fails, try to use hw:0 as a stereo device... + [Mapping stereo-fallback] + device-strings = hw:%f + fallback = yes +@@ -124,6 +117,15 @@ paths-output = analog-output analog-output-lineout analog-output-speaker analog- + paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic + priority = 1 + ++# ...and if even that fails, try to use hw:0 as a mono device. ++[Mapping mono-fallback] ++device-strings = hw:%f ++fallback = yes ++channel-map = mono ++paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono ++paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic ++priority = 1 ++ + [Mapping analog-surround-21] + device-strings = surround21:%f + channel-map = front-left,front-right,lfe +-- +2.21.0 + diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend index 6246227fc..aed8d3ba6 100644 --- a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend +++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend @@ -27,6 +27,8 @@ AUDIO_HDMI ?= "" AUDIO_HDMI_ccimx6 = "yes" SRC_URI_append = " \ + file://0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch \ + file://0002-alsa-mixer-make-the-mono-mapping-a-fallback-only.patch \ ${@oe.utils.conditional('SOUND_CARD', 'sgtl5000', '${CFG_SGTL5000}', '', d)} \ ${@oe.utils.conditional('SOUND_CARD', 'max98089', '${CFG_MAX98089}', '', d)} \ ${@oe.utils.conditional('AUDIO_HDMI', 'yes', '${CFG_HDMI}', '', d)} \ @@ -38,6 +40,16 @@ SRC_URI_append_ccimx6ulsbc = " \ file://0001-pulseaudio-keep-headphones-volume-in-platforms-witho.patch \ " +# This default setting should be added on all i.MX SoC, +# For now, the setting for mx6(including mx6ul & mx6sll)/mx7 has been upstreamed +SRC_URI_append_mx8 = " \ + file://daemon.conf \ + file://default.pa \ +" + +# Enable allow-autospawn-for-root as default +PACKAGECONFIG_append = " autospawn-for-root" + EXTRA_OECONF_append_ccimx6 = " --disable-memfd" FILES_${PN}-server_append = " ${systemd_unitdir}/* ${sysconfdir}/pulseaudio-init"