* [PATCH 0/4] Audio recipe updates
@ 2016-02-17 16:56 Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 1/4] alsa-tools: 1.0.29 -> 1.1.0 Tanu Kaskinen
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Tanu Kaskinen @ 2016-02-17 16:56 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 31af4a37c429bb1db8bfc64242b2963220f9a0e1:
oeqa/parselogs: Whitelist dmi firmware failure message in 4.4 kernels (2016-02-16 23:53:43 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib tanuk/updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=tanuk/updates
Tanu Kaskinen (4):
alsa-tools: 1.0.29 -> 1.1.0
alsa-utils: 1.0.29 -> 1.1.0
alsa-plugins: 1.0.29 -> 1.1.0
pulseaudio: 6.0 -> 8.0
...nclude-sys-select.h-for-fd_set-definition.patch | 31 ---
...nclude-speexdsp_types.h-not-speex_types.h.patch | 71 ------
...ph-include-config.h-from-rate_speexrate.c.patch | 35 +++
...lsa-plugins_1.0.29.bb => alsa-plugins_1.1.0.bb} | 16 +-
.../alsa/alsa-tools/autotools.patch | 2 +-
.../alsa/alsa-tools/makefile_no_gtk.patch | 2 +-
.../{alsa-tools_1.0.29.bb => alsa-tools_1.1.0.bb} | 4 +-
...ripts_1.0.29.bb => alsa-utils-scripts_1.1.0.bb} | 0
...1-alsabat-rename-to-avoid-naming-conflict.patch | 153 ++++++++++++
...-t-let-systemd-unit-restore-the-volume-wh.patch | 20 +-
...lsa-utils-aplay-interrupt-signal-handling.patch | 48 ----
...oring-is-success-if-not-sound-card-device.patch | 34 ---
.../{alsa-utils_1.0.29.bb => alsa-utils_1.1.0.bb} | 15 +-
meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 8 +-
...le-switch-on-port-available-Route-to-pref.patch | 268 +++++++++++++++++++++
.../0001-card-add-pa_card_profile.ports.patch | 101 +++-----
...-client-conf-Add-allow-autospawn-for-root.patch | 7 +-
...onf-parser-add-support-for-.d-directories.patch | 196 ---------------
...oth-fail-if-user-requested-profile-doesn-.patch | 7 +-
...-move-profile-selection-after-pa_card_new.patch | 131 +++++-----
...vailability-for-some-unavailable-profiles.patch | 32 ++-
.../pulseaudio/fix-git-version-gen.patch | 24 --
.../{pulseaudio_6.0.bb => pulseaudio_8.0.bb} | 7 +-
23 files changed, 636 insertions(+), 576 deletions(-)
delete mode 100644 meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch
delete mode 100644 meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch
create mode 100644 meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch
rename meta/recipes-multimedia/alsa/{alsa-plugins_1.0.29.bb => alsa-plugins_1.1.0.bb} (87%)
rename meta/recipes-multimedia/alsa/{alsa-tools_1.0.29.bb => alsa-tools_1.1.0.bb} (91%)
rename meta/recipes-multimedia/alsa/{alsa-utils-scripts_1.0.29.bb => alsa-utils-scripts_1.1.0.bb} (100%)
create mode 100644 meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch
delete mode 100644 meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch
delete mode 100644 meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch
rename meta/recipes-multimedia/alsa/{alsa-utils_1.0.29.bb => alsa-utils_1.1.0.bb} (85%)
create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch
rename meta/recipes-multimedia/pulseaudio/{pulseaudio_6.0.bb => pulseaudio_8.0.bb} (72%)
--
2.7.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/4] alsa-tools: 1.0.29 -> 1.1.0
2016-02-17 16:56 [PATCH 0/4] Audio recipe updates Tanu Kaskinen
@ 2016-02-17 16:56 ` Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 2/4] alsa-utils: " Tanu Kaskinen
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Tanu Kaskinen @ 2016-02-17 16:56 UTC (permalink / raw)
To: openembedded-core
Changelog: http://alsa-project.org/main/index.php/Changes_v1.0.29_v1.1.0
There are almost no changes in the new version: just one invalid macro
was removed from the cspctl man page.
Rebased patches "autotools.patch" and "makefile_no_gtk.patch".
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
meta/recipes-multimedia/alsa/alsa-tools/autotools.patch | 2 +-
meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch | 2 +-
.../alsa/{alsa-tools_1.0.29.bb => alsa-tools_1.1.0.bb} | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
rename meta/recipes-multimedia/alsa/{alsa-tools_1.0.29.bb => alsa-tools_1.1.0.bb} (91%)
diff --git a/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch b/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch
index 59391d6..319f25d 100644
--- a/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch
+++ b/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch
@@ -20,7 +20,7 @@ diff -ruN alsa-tools-1.0.24.1-orig//Makefile alsa-tools-1.0.24.1/Makefile
--- alsa-tools-1.0.24.1-orig//Makefile 2011-07-06 11:27:40.207665000 +0800
+++ alsa-tools-1.0.24.1/Makefile 2011-07-14 15:08:08.877665009 +0800
@@ -1,8 +1,8 @@
- VERSION = 1.0.29
+ VERSION = 1.1.0
TOP = .
-SUBDIRS = as10k1 envy24control hdsploader hdspconf hdspmixer \
+SUBDIRS = as10k1 envy24control \
diff --git a/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch b/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch
index c957609..9bd6848 100644
--- a/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch
+++ b/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch
@@ -14,7 +14,7 @@ index 2457a1c..72346d9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,9 @@
- VERSION = 1.0.29
+ VERSION = 1.1.0
TOP = .
-SUBDIRS = as10k1 envy24control \
- mixartloader pcxhrloader rmedigicontrol sb16_csp seq sscape_ctl \
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.0.29.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb
similarity index 91%
rename from meta/recipes-multimedia/alsa/alsa-tools_1.0.29.bb
rename to meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb
index fdf396e..9e633f1 100644
--- a/meta/recipes-multimedia/alsa/alsa-tools_1.0.29.bb
+++ b/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb
@@ -16,8 +16,8 @@ SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/${BP}.tar.bz2 \
file://0001-as10k1-Make-output_tram_line-static-inline.patch \
"
-SRC_URI[md5sum] = "f339a3cd24f748c9d007bdff0e98775b"
-SRC_URI[sha256sum] = "94abf0ab5a73f0710c70d4fb3dc1003af5bae2d2ed721d59d245b41ad0f2fbd1"
+SRC_URI[md5sum] = "b476a5afaa3ea3230855553ad59d259d"
+SRC_URI[sha256sum] = "7d34558c590a50294b36576d257316a1ac5cd951eb8cd7d330e09f8cc757ab51"
inherit autotools-brokensep pkgconfig
--
2.7.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/4] alsa-utils: 1.0.29 -> 1.1.0
2016-02-17 16:56 [PATCH 0/4] Audio recipe updates Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 1/4] alsa-tools: 1.0.29 -> 1.1.0 Tanu Kaskinen
@ 2016-02-17 16:56 ` Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 3/4] alsa-plugins: " Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 4/4] pulseaudio: 6.0 -> 8.0 Tanu Kaskinen
3 siblings, 0 replies; 5+ messages in thread
From: Tanu Kaskinen @ 2016-02-17 16:56 UTC (permalink / raw)
To: openembedded-core
Changelog: http://alsa-project.org/main/index.php/Changes_v1.0.29_v1.1.0
This release introduces two new tools:
- alsatplg for converting topology data from text representation to a
binary format consumed by the kernel
- alsabat; "bat" stands for "basic audio tester"
Backported a patch from upstream that renames bat to alsabat.
Rebased patch "0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch".
Dropped patches "alsa-utils-aplay-interrupt-signal-handling.patch" and
"assume-storing-is-success-if-not-sound-card-device.patch", because
the issues have been fixed upstream.
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
...ripts_1.0.29.bb => alsa-utils-scripts_1.1.0.bb} | 0
...1-alsabat-rename-to-avoid-naming-conflict.patch | 153 +++++++++++++++++++++
...-t-let-systemd-unit-restore-the-volume-wh.patch | 20 +--
...lsa-utils-aplay-interrupt-signal-handling.patch | 48 -------
...oring-is-success-if-not-sound-card-device.patch | 34 -----
.../{alsa-utils_1.0.29.bb => alsa-utils_1.1.0.bb} | 15 +-
6 files changed, 175 insertions(+), 95 deletions(-)
rename meta/recipes-multimedia/alsa/{alsa-utils-scripts_1.0.29.bb => alsa-utils-scripts_1.1.0.bb} (100%)
create mode 100644 meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch
delete mode 100644 meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch
delete mode 100644 meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch
rename meta/recipes-multimedia/alsa/{alsa-utils_1.0.29.bb => alsa-utils_1.1.0.bb} (85%)
diff --git a/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.0.29.bb b/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb
similarity index 100%
rename from meta/recipes-multimedia/alsa/alsa-utils-scripts_1.0.29.bb
rename to meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb
diff --git a/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch b/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch
new file mode 100644
index 0000000..b6d7d4f
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch
@@ -0,0 +1,153 @@
+From 28c29dece6c434e7d3d01e805555ba7ddf6fba65 Mon Sep 17 00:00:00 2001
+From: "Lu, Han" <han.lu@intel.com>
+Date: Wed, 3 Feb 2016 14:20:33 +0800
+Subject: [PATCH] alsabat: rename to avoid naming conflict
+
+alsa-utils as well as bareos-bat (as well a some Bacula packages)
+all contain a program called /usr/bin/bat, which causes conflicts on
+various distributions ("basic audio tester" vs "bareos administration
+tool"("bacula administration tool")).
+Rename to avoid conflict.
+
+Signed-off-by: Lu, Han <han.lu@intel.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Upstream-Status: Accepted [expected in version 1.1.1]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ bat/Makefile.am | 10 +++++-----
+ bat/{bat.1 => alsabat.1} | 43 ++++++++++++++++++++++---------------------
+ bat/bat.c | 2 +-
+ 3 files changed, 28 insertions(+), 27 deletions(-)
+ rename bat/{bat.1 => alsabat.1} (72%)
+
+diff --git a/bat/Makefile.am b/bat/Makefile.am
+index 842ae6b..985f00c 100644
+--- a/bat/Makefile.am
++++ b/bat/Makefile.am
+@@ -1,9 +1,9 @@
+-bin_PROGRAMS = bat
+-man_MANS = bat.1
++bin_PROGRAMS = alsabat
++man_MANS = alsabat.1
+
+-EXTRA_DIST = bat.1
++EXTRA_DIST = alsabat.1
+
+-bat_SOURCES = \
++alsabat_SOURCES = \
+ bat.c \
+ common.c \
+ analyze.c \
+@@ -21,4 +21,4 @@ noinst_HEADERS = \
+ AM_CPPFLAGS = \
+ -Wall -I$(top_srcdir)/include
+
+-bat_LDADD = @FFTW_LIB@
++alsabat_LDADD = @FFTW_LIB@
+diff --git a/bat/bat.1 b/bat/alsabat.1
+similarity index 72%
+rename from bat/bat.1
+rename to bat/alsabat.1
+index e00fc27..8d0b9c0 100644
+--- a/bat/bat.1
++++ b/bat/alsabat.1
+@@ -1,23 +1,23 @@
+-.TH BAT 1 "20th October 2015"
++.TH ALSABAT 1 "20th October 2015"
+ .SH NAME
+-bat \- command\-line sound tester for ALSA sound card driver
++alsabat \- command\-line sound tester for ALSA sound card driver
+
+ .SH SYNOPSIS
+-\fBbat\fP [\fIflags\fP]
++\fBalsabat\fP [\fIflags\fP]
+
+ .SH DESCRIPTION
+-\fBBAT(Basic Audio Tester)\fP is a simple command\-line utility intended
+-to help automate audio driver and sound server testing with little human
+-interaction. BAT can be used to test audio quality, stress test features
+-and test audio before and after PM state changes.
++\fBALSABAT(ALSA Basic Audio Tester)\fP is a simple command\-line utility
++intended to help automate audio driver and sound server testing with little
++human interaction. ALSABAT can be used to test audio quality, stress test
++features and test audio before and after PM state changes.
+
+-BAT's design is relatively simple. BAT plays an audio stream and captures
+-the same stream in either a digital or analog loop back. It then compares
+-the captured stream using a FFT to the original to determine if the test
+-case passes or fails.
++ALSABAT's design is relatively simple. ALSABAT plays an audio stream and
++captures the same stream in either a digital or analog loop back. It then
++compares the captured stream using a FFT to the original to determine if
++the test case passes or fails.
+
+-BAT can either run wholly on the target machine being tested (standalone
+-mode) or can run as a client/server mode where by bat client runs on the
++ALSABAT can either run wholly on the target machine being tested (standalone
++mode) or can run as a client/server mode where by alsabat client runs on the
+ target and runs as a server on a separate tester machine. The client/server
+ mode still requires some manual interaction for synchronization, but this
+ is actively being developed for future releases.
+@@ -93,8 +93,8 @@ Frequencies with amplitude larger than threshold will be recognized as a
+ peak, and the frequency with largest peak value will be recognized as a
+ detected frequency.
+ .br
+-BAT then compares the detected frequency to target frequency, to decide
+-if the detecting passes or fails.
++ALSABAT then compares the detected frequency to target frequency, to
++decide if the detecting passes or fails.
+ .br
+ The default value is 3.0.
+ .TP
+@@ -117,18 +117,19 @@ Target WAV file to save capture test content.
+ .TP
+ \fI\-\-local\fP
+ Internal loopback mode.
+-Playback, capture and analysis internal to BAT only. This is intended for
+-developers to test new BAT features as no audio is routed outside of BAT.
++Playback, capture and analysis internal to ALSABAT only. This is intended
++for developers to test new ALSABAT features as no audio is routed outside
++of ALSABAT.
+
+ .SH EXAMPLES
+
+ .TP
+-\fBbat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR
++\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR
+ Generate and play a sine wave of 250 Hertz with 2 channel and S32_LE format,
+ and then capture and analyze.
+
+ .TP
+-\fBbat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR
++\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR
+ Play the RIFF WAV file "500Hz.wav" which contains 500 Hertz waveform LPCM
+ data, and then capture and analyze.
+
+@@ -152,7 +153,7 @@ Currently only support RIFF WAV format with PCM data. Please report any bugs to
+ the alsa-devel mailing list.
+
+ .SH AUTHOR
+-\fBbat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard Gautier
+-<bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>.
++\fBalsabat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard
++Gautier <bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>.
+ This document is by Liam Girdwood <liam.r.girdwood@linux.intel.com> and Han Lu
+ <han.lu@intel.com>.
+diff --git a/bat/bat.c b/bat/bat.c
+index 086b9fa..ddb60b7 100644
+--- a/bat/bat.c
++++ b/bat/bat.c
+@@ -272,7 +272,7 @@ static void test_capture(struct bat *bat)
+ static void usage(struct bat *bat)
+ {
+ fprintf(bat->log,
+-_("Usage: bat [-options]...\n"
++_("Usage: alsabat [-options]...\n"
+ "\n"
+ " -h, --help this help\n"
+ " -D pcm device for both playback and capture\n"
+--
+2.7.0
+
diff --git a/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch b/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch
index e99dd51..e578dfe 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch
+++ b/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch
@@ -1,4 +1,4 @@
-From 43a56fa36a12f09ccd78b3cf5e6ae197fcab501f Mon Sep 17 00:00:00 2001
+From 8c3e0ef9625066c2bb67ee3d2b8cd37fd44eadac Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Fri, 29 Aug 2014 18:58:56 +0300
Subject: [PATCH] alsactl: don't let systemd unit restore the volume when
@@ -12,16 +12,20 @@ Upstream-Status: Pending
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
+
+Rebased on 1.1.0.
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
alsactl/Makefile.am | 7 ++++---
alsactl/alsa-restore.service.in | 1 +
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am
-index 47f06e9..b728c06 100644
+index cac8094..ff865dc 100644
--- a/alsactl/Makefile.am
+++ b/alsactl/Makefile.am
-@@ -43,9 +43,10 @@ install-data-hook:
+@@ -38,9 +38,10 @@ install-data-hook:
endif
edit = \
@@ -36,17 +40,17 @@ index 47f06e9..b728c06 100644
alsa-state.service: alsa-state.service.in
diff --git a/alsactl/alsa-restore.service.in b/alsactl/alsa-restore.service.in
-index 245a439..b017854 100644
+index 2884098..bac3ccc 100644
--- a/alsactl/alsa-restore.service.in
+++ b/alsactl/alsa-restore.service.in
-@@ -10,6 +10,7 @@ DefaultDependencies=no
+@@ -8,6 +8,7 @@ Description=Save/Restore Sound Card State
+ ConditionPathExists=!@daemonswitch@
+ ConditionPathExistsGlob=/dev/snd/control*
After=alsa-state.service
- Before=shutdown.target
- Conflicts=shutdown.target
+ConditionPathExists=@localstatedir@/lib/alsa/asound.state
[Service]
Type=oneshot
--
-1.9.1
+2.7.0.rc3
diff --git a/meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch b/meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch
deleted file mode 100644
index 5df004a..0000000
--- a/meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Upstream-Status: Pending
-
-aplay/arecord (alsa-utils v1.0.28) cannot interrupt streaming
-via CTRL-C. Fixed the issue by reverting buggy patches and
-properly handling 'in_aborting' flag in appropriate functions.
-
-Signed-off-by: Anant Agrawal <Anant_Agrawal@mentor.com>
-Signed-off-by: Mikhail Durnev <mikhail_durnev@mentor.com>
-
---- a/aplay/aplay.c 2014-05-19 16:25:14.000000000 +0530
-+++ b/aplay/aplay.c 2014-05-20 15:17:14.364823007 +0530
-@@ -392,14 +392,22 @@
- putchar('\n');
- if (!quiet_mode)
- fprintf(stderr, _("Aborted by signal %s...\n"), strsignal(sig));
-- if (handle)
-+ if (stream == SND_PCM_STREAM_CAPTURE) {
-+ if (fmt_rec_table[file_type].end) {
-+ fmt_rec_table[file_type].end(fd);
-+ fd = -1;
-+ }
-+ stream = -1;
-+ }
-+ if (fd > 1) {
-+ close(fd);
-+ fd = -1;
-+ }
-+ if (handle && sig != SIGABRT) {
- snd_pcm_abort(handle);
-- if (sig == SIGABRT) {
-- /* do not call snd_pcm_close() and abort immediately */
- handle = NULL;
-- prg_exit(EXIT_FAILURE);
- }
-- signal(sig, signal_handler);
-+ prg_exit(EXIT_FAILURE);
- }
-
- /* call on SIGUSR1 signal. */
-@@ -2096,7 +2104,7 @@
- ssize_t result = count, r;
- size_t size;
-
-- while (count > 0) {
-+ while (count > 0 && !in_aborting) {
- size = count;
- if (size > chunk_bytes - buffer_pos)
- size = chunk_bytes - buffer_pos;
diff --git a/meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch b/meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch
deleted file mode 100644
index 5309c4e..0000000
--- a/meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-[PATCH] assume storing is success if not sound card device
-
-Upstream-Status: Pending
-
-Systemd will report failure when run alsa-*, if the machine has not the
-sound card. To void this annoyed message, alsa-restore/alsa-state ignore
-all the exit codes by prefixing "-" in ExecStart, like:
-
- alsa-utils-1.0.29$ grep "=-" ./ -r|grep service.in
- ./alsactl/alsa-restore.service.in:ExecStart=-@sbindir@/alsactl restore
- ./alsactl/alsa-state.service.in:ExecStart=-@sbindir@/alsactl -s -n 19 -c rdaemon
- ./alsactl/alsa-state.service.in:ExecStop=-@sbindir@/alsactl -s kill save_and_quit
- lsa-utils-1.0.29$
-
-But alsa-store.service.in is missing, and better solution is to ignore
-the exit code 19 which means not sound card device, not all exit code
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- alsactl/alsa-store.service.in | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/alsactl/alsa-store.service.in b/alsactl/alsa-store.service.in
-index f1a56bb..68ca529 100644
---- a/alsactl/alsa-store.service.in
-+++ b/alsactl/alsa-store.service.in
-@@ -13,3 +13,4 @@ Before=shutdown.target
- Type=oneshot
- ExecStart=@sbindir@/alsactl store
- StandardOutput=syslog
-+SuccessExitStatus=0 19
---
-1.9.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.0.29.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb
similarity index 85%
rename from meta/recipes-multimedia/alsa/alsa-utils_1.0.29.bb
rename to meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb
index 97fe4b2..af40488 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils_1.0.29.bb
+++ b/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb
@@ -8,17 +8,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
DEPENDS = "alsa-lib ncurses libsamplerate0"
PACKAGECONFIG ??= "udev"
+PACKAGECONFIG[bat] = "--enable-bat,--disable-bat,fftw"
PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,,udev"
PACKAGECONFIG[xmlto] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
file://0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch \
- file://alsa-utils-aplay-interrupt-signal-handling.patch \
- file://assume-storing-is-success-if-not-sound-card-device.patch \
+ file://0001-alsabat-rename-to-avoid-naming-conflict.patch \
"
-SRC_URI[md5sum] = "6b289bf874c4c9a63f4b3973093dd404"
-SRC_URI[sha256sum] = "5160058f3e14483ced5de919dd473f93932059454530a9b7ef97dcabd6833e9b"
+SRC_URI[md5sum] = "b9d6102fbbd0b68040bb77023ed30c0c"
+SRC_URI[sha256sum] = "3b1c3135b76e14532d3dd23fb15759ddd7daf9ffbc183f7a9a0a3a86374748f1"
# lazy hack. needs proper fixing in gettext.m4, see
# http://bugs.openembedded.org/show_bug.cgi?id=2348
@@ -32,7 +32,9 @@ inherit autotools gettext pkgconfig
# ipk depends on them.
ALSA_UTILS_PKGS = "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'alsa-utils-alsabat', '', d)} \
alsa-utils-alsamixer \
+ alsa-utils-alsatplg \
alsa-utils-midi \
alsa-utils-aplay \
alsa-utils-amixer \
@@ -50,6 +52,8 @@ PACKAGES += "${ALSA_UTILS_PKGS}"
RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}"
FILES_${PN} = ""
+FILES_alsa-utils-alsabat = "${bindir}/alsabat"
+FILES_alsa-utils-alsatplg = "${bindir}/alsatplg"
FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
FILES_alsa-utils-amixer = "${bindir}/amixer"
FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
@@ -63,7 +67,8 @@ FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
FILES_alsa-utils-alsaloop = "${bindir}/alsaloop"
FILES_alsa-utils-alsaucm = "${bindir}/alsaucm"
-
+SUMMARY_alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver"
+SUMMARY_alsa-utils-alsatplg = "Converts topology text files into binary format for kernel"
SUMMARY_alsa-utils-aplay = "Play (and record) sound files using ALSA"
SUMMARY_alsa-utils-amixer = "Command-line control for ALSA mixer and settings"
SUMMARY_alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings"
--
2.7.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] alsa-plugins: 1.0.29 -> 1.1.0
2016-02-17 16:56 [PATCH 0/4] Audio recipe updates Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 1/4] alsa-tools: 1.0.29 -> 1.1.0 Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 2/4] alsa-utils: " Tanu Kaskinen
@ 2016-02-17 16:56 ` Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 4/4] pulseaudio: 6.0 -> 8.0 Tanu Kaskinen
3 siblings, 0 replies; 5+ messages in thread
From: Tanu Kaskinen @ 2016-02-17 16:56 UTC (permalink / raw)
To: openembedded-core
Changelog: http://alsa-project.org/main/index.php/Changes_v1.0.29_v1.1.0
The licensing of the libsamplerate plugin was relaxed a bit: if the
licensee has a commercial license for libsamplerate, the plugin can be
used under the terms of LGPL instead of GPL.
Both old patches are included in the new release, so dropped them.
Added a new patch to fix building against libspeexdsp 1.2rc3.
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
...nclude-sys-select.h-for-fd_set-definition.patch | 31 ----------
...nclude-speexdsp_types.h-not-speex_types.h.patch | 71 ----------------------
...ph-include-config.h-from-rate_speexrate.c.patch | 35 +++++++++++
...lsa-plugins_1.0.29.bb => alsa-plugins_1.1.0.bb} | 16 ++---
4 files changed, 44 insertions(+), 109 deletions(-)
delete mode 100644 meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch
delete mode 100644 meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch
create mode 100644 meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch
rename meta/recipes-multimedia/alsa/{alsa-plugins_1.0.29.bb => alsa-plugins_1.1.0.bb} (87%)
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch b/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch
deleted file mode 100644
index c70c72c..0000000
--- a/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d28c655be3ac4fcb8024555983884f832ee18787 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 May 2015 15:17:30 -0700
-Subject: [PATCH] arcam-av: Include sys/select.h for fd_set definition
-
-fixes build errors on non-glibc based systems
-
-arcam-av/arcam_av.c:389:2: error: unknown type name 'fd_set'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- arcam-av/arcam_av.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arcam-av/arcam_av.c b/arcam-av/arcam_av.c
-index 0491fc6..fff96f9 100644
---- a/arcam-av/arcam_av.c
-+++ b/arcam-av/arcam_av.c
-@@ -31,6 +31,7 @@
- #include <unistd.h>
-
- #include <sys/ipc.h>
-+#include <sys/select.h>
- #include <sys/shm.h>
- #include <sys/stat.h>
- #include <sys/stat.h>
---
-2.1.4
-
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch b/meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch
deleted file mode 100644
index e5199fb..0000000
--- a/meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From ca41e96a49a568128354f65f90a769debf5435f1 Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
-Date: Thu, 9 Jul 2015 11:58:12 +0300
-Subject: [PATCH] include speexdsp_types.h, not speex_types.h
-
-Speexdsp was separated from speex in 1.2rc2. speex_types.h is not
-shipped by speexdsp, so alsa-plugins shouldn't use that file. speexdsp
-has speexdsp_types.h, which has the same contents as speex_types.h.
-
-speexdsp_types.h is a new file introduced in 1.2rc2, so this change
-bumps the minimum supported speexdsp version. The version check in
-configure.ac will actually break if speexdsp 1.2 ever gets released,
-because pkg-config thinks that "1.2" < "1.2rc2", but I think it's
-useful to fail if the installed speexdsp version is 1.2rc1 (which I
-believe is very common on current distributions). If a non-rc version
-of speexdsp will ever get released, I hope version number 1.2 will be
-skipped for this reason. (A non-rc version seems unlikely, since
-1.2rc1 was released years ago, so it's pretty likely that the project
-is stuck on so called "release candidates" forever...)
-
-Upstream-Status: Submitted (http://thread.gmane.org/gmane.linux.alsa.devel/141149)
-
-Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
----
- configure.ac | 2 +-
- pph/arch.h | 2 +-
- pph/speex_resampler.h | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 902a6d7..c554d22 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -108,7 +108,7 @@ AC_SUBST(AVCODEC_CFLAGS)
- AC_SUBST(AVCODEC_LIBS)
- AC_SUBST(AVCODEC_HEADER)
-
--PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""])
-+PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2rc2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""])
- AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes")
-
- AC_ARG_WITH([speex],
-diff --git a/pph/arch.h b/pph/arch.h
-index e2d731a..a07d0d9 100644
---- a/pph/arch.h
-+++ b/pph/arch.h
-@@ -36,7 +36,7 @@
- #define ARCH_H
-
- #ifndef OUTSIDE_SPEEX
--#include "speex/speex_types.h"
-+#include "speex/speexdsp_types.h"
- #endif
-
- #define ABS(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute integer value. */
-diff --git a/pph/speex_resampler.h b/pph/speex_resampler.h
-index c44fbcd..aa85abb 100644
---- a/pph/speex_resampler.h
-+++ b/pph/speex_resampler.h
-@@ -82,7 +82,7 @@
-
- #else /* OUTSIDE_SPEEX */
-
--#include "speex/speex_types.h"
-+#include "speex/speexdsp_types.h"
-
- #endif /* OUTSIDE_SPEEX */
-
---
-1.9.3
-
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch b/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch
new file mode 100644
index 0000000..8e5b6a2
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch
@@ -0,0 +1,35 @@
+From 4350314c941489833a8baa930e16512e55f72a13 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Wed, 27 Jan 2016 13:22:38 +0200
+Subject: [PATCH] pph: include config.h from rate_speexrate.c
+
+Fixes compilation against libspeexdsp 1.2rc3.
+
+rate_speexrate.c includes speex_resampler.h, which depends on config.h
+by referencing the HAVE_SPEEX_SPEEXDSP_TYPES_H macro. AFAIK it's not
+a good idea to include config.h from headers (I don't know/remember
+why, though), which is why I include config.h from rate_speexrate.c
+instead of speex_resampler.h.
+
+Upstream-Status: Accepted [expected in 1.1.1]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ pph/rate_speexrate.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/pph/rate_speexrate.c b/pph/rate_speexrate.c
+index 0a1325c..8fc4cef 100644
+--- a/pph/rate_speexrate.c
++++ b/pph/rate_speexrate.c
+@@ -28,6 +28,7 @@
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
++#include "config.h"
+ #include <stdio.h>
+ #include <alsa/asoundlib.h>
+ #include <alsa/pcm_rate.h>
+--
+2.7.0.rc3
+
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins_1.0.29.bb b/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb
similarity index 87%
rename from meta/recipes-multimedia/alsa/alsa-plugins_1.0.29.bb
rename to meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb
index d7c42ce..fec6575 100644
--- a/meta/recipes-multimedia/alsa/alsa-plugins_1.0.29.bb
+++ b/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb
@@ -8,21 +8,23 @@ SECTION = "multimedia"
# build system, and doesn't affect the licensing of the build result.
#
# The samplerate plugin source code is licensed under GPLv2+ to be consistent
-# with the libsamplerate license.
+# with the libsamplerate license. However, if the licensee has a commercial
+# license for libsamplerate, the samplerate plugin may be used under the terms
+# of LGPLv2.1 like the rest of the plugins.
LICENSE = "LGPLv2.1 & GPLv2+"
LIC_FILES_CHKSUM = "\
file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
file://m4/attributes.m4;endline=33;md5=b25958da44c02231e3641f1bccef53eb \
- file://rate/rate_samplerate.c;endline=19;md5=f3d3ce0b189846a486517d97a854b276 \
+ file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
"
-SRC_URI = "ftp://ftp.alsa-project.org/pub/plugins/${BP}.tar.bz2 \
- file://0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch \
- file://0001-include-speexdsp_types.h-not-speex_types.h.patch \
+SRC_URI = "\
+ ftp://ftp.alsa-project.org/pub/plugins/${BP}.tar.bz2 \
+ file://0001-pph-include-config.h-from-rate_speexrate.c.patch \
"
-SRC_URI[md5sum] = "a66797b4471e3cbe96575207bfbe252c"
-SRC_URI[sha256sum] = "325d85cac285f632b83e0191ae3f348bad03c1f007b937042f164abb81ea6532"
+SRC_URI[md5sum] = "b123e42ed881b9adbc99e4040f257c39"
+SRC_URI[sha256sum] = "3b83c329953bef99f5fe25ae04ec4a455fe6514939f3b45a5321966652b2c9ee"
DEPENDS += "alsa-lib"
--
2.7.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] pulseaudio: 6.0 -> 8.0
2016-02-17 16:56 [PATCH 0/4] Audio recipe updates Tanu Kaskinen
` (2 preceding siblings ...)
2016-02-17 16:56 ` [PATCH 3/4] alsa-plugins: " Tanu Kaskinen
@ 2016-02-17 16:56 ` Tanu Kaskinen
3 siblings, 0 replies; 5+ messages in thread
From: Tanu Kaskinen @ 2016-02-17 16:56 UTC (permalink / raw)
To: openembedded-core
Release notes for 7.0:
https://wiki.freedesktop.org/www/Software/PulseAudio/Notes/7.0/
Release notes for 8.0:
https://wiki.freedesktop.org/www/Software/PulseAudio/Notes/8.0/
7.0 added support for soxr resamplers, but neither oe-core nor meta-oe
have libsoxr packaged. The default resampler is still speexdsp based,
so most people wouldn't be using the soxr resamplers anyway. If
someone cares enough to package soxr, then we can enable the feature.
Bash completions moved in 7.0 from /etc to the standard location under
/usr/share/bash-completion. We now use the bash-completion class to
package the completion files.
The private library libpulsecore moved from /usr/lib to
/usr/lib/pulseaudio.
The new routing features advertised in the 8.0 release notes are
reverted for now, because they caused regressions. I'll remove the
revert once a proper fix is available.
Removed two patches, because they are included in the new release.
Rebased three patches.
Updated Upstream-Status tags to reflect the current situation.
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 8 +-
...le-switch-on-port-available-Route-to-pref.patch | 268 +++++++++++++++++++++
.../0001-card-add-pa_card_profile.ports.patch | 101 +++-----
...-client-conf-Add-allow-autospawn-for-root.patch | 7 +-
...onf-parser-add-support-for-.d-directories.patch | 196 ---------------
...oth-fail-if-user-requested-profile-doesn-.patch | 7 +-
...-move-profile-selection-after-pa_card_new.patch | 131 +++++-----
...vailability-for-some-unavailable-profiles.patch | 32 ++-
.../pulseaudio/fix-git-version-gen.patch | 24 --
.../{pulseaudio_6.0.bb => pulseaudio_8.0.bb} | 7 +-
10 files changed, 413 insertions(+), 368 deletions(-)
create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch
rename meta/recipes-multimedia/pulseaudio/{pulseaudio_6.0.bb => pulseaudio_8.0.bb} (72%)
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index b278115..0b05ce4 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -12,7 +12,7 @@ DEPENDS = "libatomic-ops libsndfile1 libtool"
DEPENDS += "udev alsa-lib glib-2.0 gconf"
DEPENDS += "json-c gdbm speexdsp libxml-parser-perl-native libcap"
-inherit autotools pkgconfig useradd gettext perlnative bluetooth systemd
+inherit autotools bash-completion pkgconfig useradd gettext perlnative bluetooth systemd
# *.desktop rules wont be generated during configure and build will fail
# if using --disable-nls
@@ -32,6 +32,10 @@ EXTRA_OECONF = "\
ac_cv_header_valgrind_memcheck_h=no \
"
+# soxr (the SoX Resampler library) doesn't seem to be currently packaged in
+# oe-core nor meta-oe, so let's not add a PACKAGECONFIG entry for it for now.
+EXTRA_OECONF += "--without-soxr"
+
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
@@ -101,7 +105,7 @@ RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf"
PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*"
-FILES_libpulsecore = "${libdir}/libpulsecore*.so"
+FILES_libpulsecore = "${libdir}/pulseaudio/libpulsecore*.so"
FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so"
# client.conf configures the behaviour of libpulse, so it belongs in the same
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
new file mode 100644
index 0000000..1c1e2fb
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
@@ -0,0 +1,268 @@
+From b8b9b3da94a0c27090ceba243fdf54fb518c5489 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Mon, 1 Feb 2016 15:34:59 +0200
+Subject: [PATCH] Revert "module-switch-on-port-available: Route to preferred
+ profile"
+
+This reverts commit e87100d41ef6d14f8dc7f803582191d9f8d8f183.
+
+The reverted commit had some unwanted consequences:
+https://bugs.freedesktop.org/show_bug.cgi?id=93903
+https://bugs.freedesktop.org/show_bug.cgi?id=93946
+
+The first regression has a fix here:
+https://patchwork.freedesktop.org/patch/72053/
+
+The second regression, however, doesn't have a fix yet. Therefore,
+it's best to revert the offending patch for now.
+
+Upstream-Status: Inappropriate [Upstream plans to fix the issues
+properly.]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ src/modules/module-switch-on-port-available.c | 172 ++++++++++----------------
+ 1 file changed, 67 insertions(+), 105 deletions(-)
+
+diff --git a/src/modules/module-switch-on-port-available.c b/src/modules/module-switch-on-port-available.c
+index 5dd9786..8de68a3 100644
+--- a/src/modules/module-switch-on-port-available.c
++++ b/src/modules/module-switch-on-port-available.c
+@@ -74,25 +74,22 @@ static bool profile_good_for_input(pa_card_profile *profile) {
+ static int try_to_switch_profile(pa_device_port *port) {
+ pa_card_profile *best_profile = NULL, *profile;
+ void *state;
+- unsigned best_prio = 0;
+
+- pa_log_debug("Finding best profile for port %s, preferred = %s",
+- port->name, pa_strnull(port->preferred_profile));
++ pa_log_debug("Finding best profile");
+
+ PA_HASHMAP_FOREACH(profile, port->profiles, state) {
+ bool good = false;
+- const char *name;
+- unsigned prio = profile->priority;
++
++ if (best_profile && best_profile->priority >= profile->priority)
++ continue;
+
+ /* We make a best effort to keep other direction unchanged */
+ switch (port->direction) {
+ case PA_DIRECTION_OUTPUT:
+- name = profile->output_name;
+ good = profile_good_for_output(profile);
+ break;
+
+ case PA_DIRECTION_INPUT:
+- name = profile->input_name;
+ good = profile_good_for_input(profile);
+ break;
+ }
+@@ -100,15 +97,7 @@ static int try_to_switch_profile(pa_device_port *port) {
+ if (!good)
+ continue;
+
+- /* Give a high bonus in case this is the preferred profile */
+- if (port->preferred_profile && pa_streq(name ? name : profile->name, port->preferred_profile))
+- prio += 1000000;
+-
+- if (best_profile && best_prio >= prio)
+- continue;
+-
+ best_profile = profile;
+- best_prio = prio;
+ }
+
+ if (!best_profile) {
+@@ -124,125 +113,98 @@ static int try_to_switch_profile(pa_device_port *port) {
+ return 0;
+ }
+
+-struct port_pointers {
+- pa_device_port *port;
+- pa_sink *sink;
+- pa_source *source;
+- bool is_possible_profile_active;
+- bool is_preferred_profile_active;
+- bool is_port_active;
+-};
+-
+-static const char* profile_name_for_dir(pa_card_profile *cp, pa_direction_t dir) {
+- if (dir == PA_DIRECTION_OUTPUT && cp->output_name)
+- return cp->output_name;
+- if (dir == PA_DIRECTION_INPUT && cp->input_name)
+- return cp->input_name;
+- return cp->name;
+-}
+-
+-static struct port_pointers find_port_pointers(pa_device_port *port) {
+- struct port_pointers pp = { .port = port };
++static void find_sink_and_source(pa_card *card, pa_device_port *port, pa_sink **si, pa_source **so) {
++ pa_sink *sink = NULL;
++ pa_source *source = NULL;
+ uint32_t state;
+- pa_card *card;
+-
+- pa_assert(port);
+- pa_assert_se(card = port->card);
+
+ switch (port->direction) {
+ case PA_DIRECTION_OUTPUT:
+- PA_IDXSET_FOREACH(pp.sink, card->sinks, state)
+- if (port == pa_hashmap_get(pp.sink->ports, port->name))
++ PA_IDXSET_FOREACH(sink, card->sinks, state)
++ if (port == pa_hashmap_get(sink->ports, port->name))
+ break;
+ break;
+
+ case PA_DIRECTION_INPUT:
+- PA_IDXSET_FOREACH(pp.source, card->sources, state)
+- if (port == pa_hashmap_get(pp.source->ports, port->name))
++ PA_IDXSET_FOREACH(source, card->sources, state)
++ if (port == pa_hashmap_get(source->ports, port->name))
+ break;
+ break;
+ }
+
+- pp.is_possible_profile_active =
+- card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name);
+- pp.is_preferred_profile_active = pp.is_possible_profile_active && (!port->preferred_profile ||
+- pa_safe_streq(port->preferred_profile, profile_name_for_dir(card->active_profile, port->direction)));
+- pp.is_port_active = (pp.sink && pp.sink->active_port == port) || (pp.source && pp.source->active_port == port);
+-
+- return pp;
++ *si = sink;
++ *so = source;
+ }
+
+-/* Switches to a port, switching profiles if necessary or preferred */
+-static bool switch_to_port(pa_device_port *port) {
+- struct port_pointers pp = find_port_pointers(port);
++static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port *port, void* userdata) {
++ pa_card* card;
++ pa_sink *sink;
++ pa_source *source;
++ bool is_active_profile, is_active_port;
+
+- if (pp.is_port_active)
+- return true; /* Already selected */
++ if (port->available == PA_AVAILABLE_UNKNOWN)
++ return PA_HOOK_OK;
+
+- pa_log_debug("Trying to switch to port %s", port->name);
+- if (!pp.is_preferred_profile_active) {
+- if (try_to_switch_profile(port) < 0) {
+- if (pp.is_possible_profile_active)
+- return false;
+- }
+- else
+- /* Now that profile has changed, our sink and source pointers must be updated */
+- pp = find_port_pointers(port);
+- }
++ card = port->card;
+
+- if (pp.source)
+- pa_source_set_port(pp.source, port->name, false);
+- if (pp.sink)
+- pa_sink_set_port(pp.sink, port->name, false);
+- return true;
+-}
++ if (!card) {
++ pa_log_warn("Port %s does not have a card", port->name);
++ return PA_HOOK_OK;
++ }
+
+-/* Switches away from a port, switching profiles if necessary or preferred */
+-static bool switch_from_port(pa_device_port *port) {
+- struct port_pointers pp = find_port_pointers(port);
+- pa_device_port *p, *best_port = NULL;
+- void *state;
++ if (pa_idxset_size(card->sinks) == 0 && pa_idxset_size(card->sources) == 0)
++ /* This card is not initialized yet. We'll handle it in
++ sink_new / source_new callbacks later. */
++ return PA_HOOK_OK;
+
+- if (!pp.is_port_active)
+- return true; /* Already deselected */
++ find_sink_and_source(card, port, &sink, &source);
+
+- /* Try to find a good enough port to switch to */
+- PA_HASHMAP_FOREACH(p, port->card->ports, state)
+- if (p->direction == port->direction && p != port && p->available != PA_AVAILABLE_NO &&
+- (!best_port || best_port->priority < p->priority))
+- best_port = p;
++ is_active_profile = card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name);
++ is_active_port = (sink && sink->active_port == port) || (source && source->active_port == port);
+
+- pa_log_debug("Trying to switch away from port %s, found %s", port->name, best_port ? best_port->name : "no better option");
++ if (port->available == PA_AVAILABLE_NO && !is_active_port)
++ return PA_HOOK_OK;
+
+- if (best_port)
+- return switch_to_port(best_port);
++ if (port->available == PA_AVAILABLE_YES) {
++ if (is_active_port)
++ return PA_HOOK_OK;
+
+- return false;
+-}
++ if (!is_active_profile) {
++ if (try_to_switch_profile(port) < 0)
++ return PA_HOOK_OK;
+
++ pa_assert(card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name));
+
+-static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port *port, void* userdata) {
+- pa_assert(port);
++ /* Now that profile has changed, our sink and source pointers must be updated */
++ find_sink_and_source(card, port, &sink, &source);
++ }
+
+- if (!port->card) {
+- pa_log_warn("Port %s does not have a card", port->name);
+- return PA_HOOK_OK;
++ if (source)
++ pa_source_set_port(source, port->name, false);
++ if (sink)
++ pa_sink_set_port(sink, port->name, false);
+ }
+
+- if (pa_idxset_size(port->card->sinks) == 0 && pa_idxset_size(port->card->sources) == 0)
+- /* This card is not initialized yet. We'll handle it in
+- sink_new / source_new callbacks later. */
+- return PA_HOOK_OK;
++ if (port->available == PA_AVAILABLE_NO) {
++ if (sink) {
++ pa_device_port *p2 = pa_device_port_find_best(sink->ports);
++
++ if (p2 && p2->available != PA_AVAILABLE_NO)
++ pa_sink_set_port(sink, p2->name, false);
++ else {
++ /* Maybe try to switch to another profile? */
++ }
++ }
+
+- switch (port->available) {
+- case PA_AVAILABLE_YES:
+- switch_to_port(port);
+- break;
+- case PA_AVAILABLE_NO:
+- switch_from_port(port);
+- break;
+- default:
+- break;
++ if (source) {
++ pa_device_port *p2 = pa_device_port_find_best(source->ports);
++
++ if (p2 && p2->available != PA_AVAILABLE_NO)
++ pa_source_set_port(source, p2->name, false);
++ else {
++ /* Maybe try to switch to another profile? */
++ }
++ }
+ }
+
+ return PA_HOOK_OK;
+--
+2.7.0
+
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch
index 97b2e40..84c9519 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch
@@ -1,4 +1,4 @@
-From 6f814b40a01d03f93b36184c19339033949de472 Mon Sep 17 00:00:00 2001
+From d1c02971867bea10afcafc82c965414012c4d6bd Mon Sep 17 00:00:00 2001
From: Tanu Kaskinen <tanuk@iki.fi>
Date: Fri, 23 Oct 2015 12:23:13 +0300
Subject: [PATCH 1/4] card: add pa_card_profile.ports
@@ -9,23 +9,30 @@ availability (implemented in a later patch).
http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+Rebased on 8.0.
+
+Upstream-Status: Denied [The patch set needs some work to be accepted.
+The review thread:
+http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
src/modules/alsa/alsa-mixer.c | 4 +++-
src/modules/alsa/alsa-ucm.c | 1 +
src/modules/bluetooth/module-bluez4-device.c | 6 ++++++
src/modules/bluetooth/module-bluez5-device.c | 6 ++++++
- src/pulsecore/card.c | 16 ++++++++++++++++
- src/pulsecore/card.h | 18 ++++++++++++------
+ src/pulsecore/card.c | 15 +++++++++++++++
+ src/pulsecore/card.h | 4 ++++
src/pulsecore/device-port.c | 7 ++++++-
- 7 files changed, 50 insertions(+), 8 deletions(-)
+ 7 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
-index 47cbd14..c5b82b0 100644
+index 1fe2a02..5b76b06 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
-@@ -4654,8 +4654,10 @@ static pa_device_port* device_port_alsa_init(pa_hashmap *ports, /* card ports */
+@@ -4783,8 +4783,10 @@ static pa_device_port* device_port_alsa_init(pa_hashmap *ports, /* card ports */
path->port = p;
}
@@ -38,10 +45,10 @@ index 47cbd14..c5b82b0 100644
if (extra) {
pa_hashmap_put(extra, p->name, p);
diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c
-index aa2d601..c8199d6 100644
+index 42f3242..68fcc26 100644
--- a/src/modules/alsa/alsa-ucm.c
+++ b/src/modules/alsa/alsa-ucm.c
-@@ -761,6 +761,7 @@ static void ucm_add_port_combination(
+@@ -791,6 +791,7 @@ static void ucm_add_port_combination(
if (cp) {
pa_log_debug("Adding profile %s to port %s.", cp->name, port->name);
pa_hashmap_put(port->profiles, cp->name, cp);
@@ -50,10 +57,10 @@ index aa2d601..c8199d6 100644
if (hash) {
diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
-index db69d34..b40c6a0 100644
+index 9a921a5..adecb32 100644
--- a/src/modules/bluetooth/module-bluez4-device.c
+++ b/src/modules/bluetooth/module-bluez4-device.c
-@@ -2183,6 +2183,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
+@@ -2180,6 +2180,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
p->max_sink_channels = 2;
p->max_source_channels = 0;
pa_hashmap_put(output_port->profiles, p->name, p);
@@ -61,7 +68,7 @@ index db69d34..b40c6a0 100644
d = PA_CARD_PROFILE_DATA(p);
*d = PA_BLUEZ4_PROFILE_A2DP;
-@@ -2194,6 +2195,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
+@@ -2191,6 +2192,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
p->max_sink_channels = 0;
p->max_source_channels = 2;
pa_hashmap_put(input_port->profiles, p->name, p);
@@ -69,7 +76,7 @@ index db69d34..b40c6a0 100644
d = PA_CARD_PROFILE_DATA(p);
*d = PA_BLUEZ4_PROFILE_A2DP_SOURCE;
-@@ -2206,6 +2208,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
+@@ -2203,6 +2205,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
p->max_source_channels = 1;
pa_hashmap_put(input_port->profiles, p->name, p);
pa_hashmap_put(output_port->profiles, p->name, p);
@@ -78,7 +85,7 @@ index db69d34..b40c6a0 100644
d = PA_CARD_PROFILE_DATA(p);
*d = PA_BLUEZ4_PROFILE_HSP;
-@@ -2218,6 +2222,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
+@@ -2215,6 +2219,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
p->max_source_channels = 1;
pa_hashmap_put(input_port->profiles, p->name, p);
pa_hashmap_put(output_port->profiles, p->name, p);
@@ -88,7 +95,7 @@ index db69d34..b40c6a0 100644
d = PA_CARD_PROFILE_DATA(p);
*d = PA_BLUEZ4_PROFILE_HFGW;
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
-index 7238e6f..3321785 100644
+index 84e6d55..b015c67 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -1790,6 +1790,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
@@ -126,18 +133,18 @@ index 7238e6f..3321785 100644
p = PA_CARD_PROFILE_DATA(cp);
*p = PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY;
diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
-index 6f9391e..cc4c784 100644
+index b6cbbf7..f92ac87 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
-@@ -50,6 +50,7 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description,
- c->n_sinks = c->n_sources = 0;
- c->max_sink_channels = c->max_source_channels = 0;
+@@ -45,6 +45,7 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description,
+ c->name = pa_xstrdup(name);
+ c->description = pa_xstrdup(description);
c->available = PA_AVAILABLE_UNKNOWN;
+ c->ports = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
return c;
}
-@@ -57,11 +58,25 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description,
+@@ -52,6 +53,14 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description,
void pa_card_profile_free(pa_card_profile *c) {
pa_assert(c);
@@ -149,8 +156,10 @@ index 6f9391e..cc4c784 100644
+ pa_hashmap_free(c->ports);
+ }
+
+ pa_xfree(c->input_name);
+ pa_xfree(c->output_name);
pa_xfree(c->name);
- pa_xfree(c->description);
+@@ -59,6 +68,12 @@ void pa_card_profile_free(pa_card_profile *c) {
pa_xfree(c);
}
@@ -163,47 +172,11 @@ index 6f9391e..cc4c784 100644
void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available) {
pa_core *core;
-@@ -198,6 +213,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
-
- c->userdata = NULL;
- c->set_profile = NULL;
-+ c->active_profile = NULL;
-
- pa_device_init_description(c->proplist, c);
- pa_device_init_icon(c->proplist, true);
diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h
-index 3e2c004..1c33958 100644
+index 30bfc0e..fff9057 100644
--- a/src/pulsecore/card.h
+++ b/src/pulsecore/card.h
-@@ -22,19 +22,21 @@
-
- typedef struct pa_card pa_card;
-
--#include <pulse/proplist.h>
--#include <pulsecore/core.h>
--#include <pulsecore/module.h>
--#include <pulsecore/idxset.h>
--
- /* This enum replaces pa_port_available_t (defined in pulse/def.h) for
-- * internal use, so make sure both enum types stay in sync. */
-+ * internal use, so make sure both enum types stay in sync. This is defined
-+ * before the #includes, because device-port.h depends on this enum. */
- typedef enum pa_available {
- PA_AVAILABLE_UNKNOWN = 0,
- PA_AVAILABLE_NO = 1,
- PA_AVAILABLE_YES = 2,
- } pa_available_t;
-
-+#include <pulse/proplist.h>
-+#include <pulsecore/core.h>
-+#include <pulsecore/device-port.h>
-+#include <pulsecore/module.h>
-+#include <pulsecore/idxset.h>
-+
- typedef struct pa_card_profile {
- pa_card *card;
- char *name;
-@@ -43,6 +45,8 @@ typedef struct pa_card_profile {
+@@ -50,6 +50,8 @@ struct pa_card_profile {
unsigned priority;
pa_available_t available; /* PA_AVAILABLE_UNKNOWN, PA_AVAILABLE_NO or PA_AVAILABLE_YES */
@@ -212,7 +185,7 @@ index 3e2c004..1c33958 100644
/* We probably want to have different properties later on here */
unsigned n_sinks;
unsigned n_sources;
-@@ -100,6 +104,8 @@ typedef struct pa_card_new_data {
+@@ -107,6 +109,8 @@ typedef struct pa_card_new_data {
pa_card_profile *pa_card_profile_new(const char *name, const char *description, size_t extra);
void pa_card_profile_free(pa_card_profile *c);
@@ -222,10 +195,10 @@ index 3e2c004..1c33958 100644
void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available);
diff --git a/src/pulsecore/device-port.c b/src/pulsecore/device-port.c
-index cfe2a80..f16ecef 100644
+index 5807d3e..d12dfbc 100644
--- a/src/pulsecore/device-port.c
+++ b/src/pulsecore/device-port.c
-@@ -95,8 +95,13 @@ static void device_port_free(pa_object *o) {
+@@ -107,8 +107,13 @@ static void device_port_free(pa_object *o) {
if (p->proplist)
pa_proplist_free(p->proplist);
@@ -238,8 +211,8 @@ index cfe2a80..f16ecef 100644
pa_hashmap_free(p->profiles);
+ }
+ pa_xfree(p->preferred_profile);
pa_xfree(p->name);
- pa_xfree(p->description);
--
-2.1.4
+2.7.0
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
index d19eb7c..bc32775 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
@@ -7,7 +7,12 @@ Usually autospawning for root is a bad idea, since it can easily
interfere with other users' PulseAudio instances, but in embedded
environments where only root exists, autospawning is fine.
-Upstream-Status: Submitted [http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23549]
+Upstream-Status: Denied [Upstream hasn't so far been convinced that
+this feature is needed. The view is that running the graphical session
+as root doesn't make sense even on embedded systems, or if it does,
+running PulseAudio in the system mode should be a good solution for
+that use case. If someone can prove otherwise, the patch would
+probably be accepted.]
Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
---
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch
deleted file mode 100644
index a9f1b2a..0000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-From 8cb643bbf0a287d67794e680d26f49c503f31053 Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
-Date: Thu, 21 May 2015 21:00:59 +0300
-Subject: [PATCH] conf-parser: add support for .d directories
-
-This allows a configuration scheme where prior to loading
-configuration from "somefile", the parser first loads configuration
-from files in directory "somefile.d". This feature is currently
-enabled only for client.conf and daemon.conf.
-
-This makes it easier to create configuration packages in distributions
-when there's need to have different configuration in different setups.
-For example, the graphical Sato environment in OpenEmbedded-core needs
-to set allow-autospawn-for-root=true in client.conf, but the default
-configuration in OpenEmbedded-core should not set that option. With
-this patch, I can create a Sato-specific package that simply installs
-50-sato.conf in /etc/pulse/client.conf.d without conflicting with the
-main client.conf file coming from a different package.
-
-Upstream-Status: Submitted [http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23592]
-
-Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
----
- src/daemon/daemon-conf.c | 2 +-
- src/modules/alsa/alsa-mixer.c | 4 ++--
- src/modules/module-augment-properties.c | 2 +-
- src/pulse/client-conf.c | 2 +-
- src/pulsecore/conf-parser.c | 42 +++++++++++++++++++++++++++++++--
- src/pulsecore/conf-parser.h | 8 ++++++-
- 6 files changed, 52 insertions(+), 8 deletions(-)
-
-diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
-index 21a8edb..1332fc6 100644
---- a/src/daemon/daemon-conf.c
-+++ b/src/daemon/daemon-conf.c
-@@ -617,7 +617,7 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) {
- ci.default_channel_map_set = ci.default_sample_spec_set = false;
- ci.conf = c;
-
-- r = f ? pa_config_parse(c->config_file, f, table, NULL, NULL) : 0;
-+ r = f ? pa_config_parse(c->config_file, f, table, NULL, true, NULL) : 0;
-
- if (r >= 0) {
-
-diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
-index 2314612..988b4fe 100644
---- a/src/modules/alsa/alsa-mixer.c
-+++ b/src/modules/alsa/alsa-mixer.c
-@@ -2483,7 +2483,7 @@ pa_alsa_path* pa_alsa_path_new(const char *paths_dir, const char *fname, pa_alsa
-
- fn = pa_maybe_prefix_path(fname, paths_dir);
-
-- r = pa_config_parse(fn, NULL, items, p->proplist, p);
-+ r = pa_config_parse(fn, NULL, items, p->proplist, false, p);
- pa_xfree(fn);
-
- if (r < 0)
-@@ -4288,7 +4288,7 @@ pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel
- pa_run_from_build_tree() ? PA_SRCDIR "/modules/alsa/mixer/profile-sets/" :
- PA_ALSA_PROFILE_SETS_DIR);
-
-- r = pa_config_parse(fn, NULL, items, NULL, ps);
-+ r = pa_config_parse(fn, NULL, items, NULL, false, ps);
- pa_xfree(fn);
-
- if (r < 0)
-diff --git a/src/modules/module-augment-properties.c b/src/modules/module-augment-properties.c
-index 42b6fd9..541f0e7 100644
---- a/src/modules/module-augment-properties.c
-+++ b/src/modules/module-augment-properties.c
-@@ -204,7 +204,7 @@ static void update_rule(struct rule *r) {
- table[0].data = &r->application_name;
- table[1].data = &r->icon_name;
-
-- if (pa_config_parse(fn, NULL, table, NULL, r) < 0)
-+ if (pa_config_parse(fn, NULL, table, NULL, false, r) < 0)
- pa_log_warn("Failed to parse .desktop file %s.", fn);
-
- pa_xfree(fn);
-diff --git a/src/pulse/client-conf.c b/src/pulse/client-conf.c
-index 83331f8..3c3384d 100644
---- a/src/pulse/client-conf.c
-+++ b/src/pulse/client-conf.c
-@@ -149,7 +149,7 @@ void pa_client_conf_load(pa_client_conf *c, bool load_from_x11, bool load_from_e
-
- f = pa_open_config_file(DEFAULT_CLIENT_CONFIG_FILE, DEFAULT_CLIENT_CONFIG_FILE_USER, ENV_CLIENT_CONFIG_FILE, &fn);
- if (f) {
-- pa_config_parse(fn, f, table, NULL, NULL);
-+ pa_config_parse(fn, f, table, NULL, true, NULL);
- pa_xfree(fn);
- fclose(f);
- }
-diff --git a/src/pulsecore/conf-parser.c b/src/pulsecore/conf-parser.c
-index 2dcd45a..d473232 100644
---- a/src/pulsecore/conf-parser.c
-+++ b/src/pulsecore/conf-parser.c
-@@ -21,6 +21,7 @@
- #include <config.h>
- #endif
-
-+#include <dirent.h>
- #include <string.h>
- #include <stdio.h>
- #include <errno.h>
-@@ -103,7 +104,7 @@ static int parse_line(pa_config_parser_state *state) {
- }
- }
-
-- r = pa_config_parse(fn, NULL, state->item_table, state->proplist, state->userdata);
-+ r = pa_config_parse(fn, NULL, state->item_table, state->proplist, false, state->userdata);
- pa_xfree(path);
- return r;
- }
-@@ -152,8 +153,13 @@ static int parse_line(pa_config_parser_state *state) {
- return normal_assignment(state);
- }
-
-+static int conf_filter(const struct dirent *entry) {
-+ return pa_endswith(entry->d_name, ".conf");
-+}
-+
- /* Go through the file and parse each line */
--int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, void *userdata) {
-+int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, bool use_dot_d,
-+ void *userdata) {
- int r = -1;
- bool do_close = !f;
- pa_config_parser_state state;
-@@ -163,6 +169,38 @@ int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_p
-
- pa_zero(state);
-
-+ if (use_dot_d) {
-+ char *dir_name;
-+ int n;
-+ struct dirent **entries = NULL;
-+
-+ dir_name = pa_sprintf_malloc("%s.d", filename);
-+
-+ n = scandir(dir_name, &entries, conf_filter, alphasort);
-+ if (n >= 0) {
-+ int i;
-+
-+ for (i = 0; i < n; i++) {
-+ char *filename2;
-+
-+ filename2 = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", dir_name, entries[i]->d_name);
-+ pa_config_parse(filename2, NULL, t, proplist, false, userdata);
-+ pa_xfree(filename2);
-+
-+ free(entries[i]);
-+ }
-+
-+ free(entries);
-+ } else {
-+ if (errno == ENOENT)
-+ pa_log_debug("scandir(\"%s\") failed: %s", dir_name, pa_cstrerror(errno));
-+ else
-+ pa_log_warn("scandir(\"%s\") failed: %s", dir_name, pa_cstrerror(errno));
-+ }
-+
-+ pa_xfree(dir_name);
-+ }
-+
- if (!f && !(f = pa_fopen_cloexec(filename, "r"))) {
- if (errno == ENOENT) {
- pa_log_debug("Failed to open configuration file '%s': %s", filename, pa_cstrerror(errno));
-diff --git a/src/pulsecore/conf-parser.h b/src/pulsecore/conf-parser.h
-index dbb6f5c..cc20d7d 100644
---- a/src/pulsecore/conf-parser.h
-+++ b/src/pulsecore/conf-parser.h
-@@ -59,6 +59,11 @@ struct pa_config_parser_state {
- * pa_config_items in *t that is terminated by an item where lvalue is
- * NULL.
- *
-+ * If use_dot_d is true, then before parsing the file named by the filename
-+ * argument, the function will parse all files ending with ".conf" in
-+ * alphabetical order from a directory whose name is filename + ".d", if such
-+ * directory exists.
-+ *
- * Some configuration files may contain a Properties section, which
- * is a bit special. Normally all accepted lvalues must be predefined
- * in the pa_config_item table, but in the Properties section the
-@@ -68,7 +73,8 @@ struct pa_config_parser_state {
- * properties, and those properties will be merged into the given
- * proplist. If proplist is NULL, then sections named "Properties"
- * are not allowed at all in the configuration file. */
--int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, void *userdata);
-+int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, bool use_dot_d,
-+ void *userdata);
-
- /* Generic parsers for integers, size_t, booleans and strings */
- int pa_config_parse_int(pa_config_parser_state *state);
---
-1.9.3
-
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
index c3f217b..be3655b 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
@@ -10,8 +10,13 @@ didn't succeed.
http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+Upstream-Status: Denied [The patch set needs some work to be accepted.
+The review thread:
+http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
src/modules/alsa/module-alsa-card.c | 10 ++++++++--
src/modules/bluetooth/module-bluez4-device.c | 6 ++++--
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch
index 9585f3d..0e77801 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch
@@ -1,4 +1,4 @@
-From cc41c8a3149ef04d4aa2db3d15032605a5504658 Mon Sep 17 00:00:00 2001
+From 13e85dd1763e99d21a60323671b9a5df08bdae75 Mon Sep 17 00:00:00 2001
From: Tanu Kaskinen <tanuk@iki.fi>
Date: Fri, 23 Oct 2015 12:59:53 +0300
Subject: [PATCH 3/4] card: move profile selection after pa_card_new()
@@ -32,23 +32,30 @@ whether someone else has already set the profile.
http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+Rebased on 8.0.
+
+Upstream-Status: Denied [The patch set needs some work to be accepted.
+The review thread:
+http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
- src/modules/alsa/module-alsa-card.c | 19 +++---
- src/modules/bluetooth/module-bluez4-device.c | 18 +++---
+ src/modules/alsa/module-alsa-card.c | 19 +++----
+ src/modules/bluetooth/module-bluez4-device.c | 18 +++----
src/modules/bluetooth/module-bluez5-device.c | 1 +
src/modules/macosx/module-coreaudio-device.c | 1 +
- src/modules/module-card-restore.c | 24 ++++----
- src/pulsecore/card.c | 86 +++++++++++++++-------------
+ src/modules/module-card-restore.c | 24 +++++----
+ src/pulsecore/card.c | 81 +++++++++++++++-------------
src/pulsecore/card.h | 7 +++
- 7 files changed, 87 insertions(+), 69 deletions(-)
+ 7 files changed, 86 insertions(+), 65 deletions(-)
diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
-index 32f517e..5b39654 100644
+index 9e8cde2..fe240f0 100644
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
-@@ -754,15 +754,6 @@ int pa__init(pa_module *m) {
+@@ -770,15 +770,6 @@ int pa__init(pa_module *m) {
goto fail;
}
@@ -64,7 +71,7 @@ index 32f517e..5b39654 100644
u->card = pa_card_new(m->core, &data);
pa_card_new_data_done(&data);
-@@ -773,6 +764,16 @@ int pa__init(pa_module *m) {
+@@ -789,6 +780,16 @@ int pa__init(pa_module *m) {
u->card->set_profile = card_set_profile;
init_jacks(u);
@@ -82,10 +89,10 @@ index 32f517e..5b39654 100644
init_eld_ctls(u);
diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
-index 94e6988..5efc5dc 100644
+index dd18217..5d0d3db 100644
--- a/src/modules/bluetooth/module-bluez4-device.c
+++ b/src/modules/bluetooth/module-bluez4-device.c
-@@ -2307,15 +2307,6 @@ static int add_card(struct userdata *u) {
+@@ -2304,15 +2304,6 @@ static int add_card(struct userdata *u) {
*d = PA_BLUEZ4_PROFILE_OFF;
pa_hashmap_put(data.profiles, p->name, p);
@@ -101,7 +108,7 @@ index 94e6988..5efc5dc 100644
u->card = pa_card_new(u->core, &data);
pa_card_new_data_done(&data);
-@@ -2326,6 +2317,15 @@ static int add_card(struct userdata *u) {
+@@ -2323,6 +2314,15 @@ static int add_card(struct userdata *u) {
u->card->userdata = u;
u->card->set_profile = card_set_profile;
@@ -118,7 +125,7 @@ index 94e6988..5efc5dc 100644
d = PA_CARD_PROFILE_DATA(u->card->active_profile);
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
-index 3321785..0081a21 100644
+index b015c67..7b90a31 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -1959,6 +1959,7 @@ static int add_card(struct userdata *u) {
@@ -130,10 +137,10 @@ index 3321785..0081a21 100644
p = PA_CARD_PROFILE_DATA(u->card->active_profile);
u->profile = *p;
diff --git a/src/modules/macosx/module-coreaudio-device.c b/src/modules/macosx/module-coreaudio-device.c
-index 4bbb5d5..41f151f 100644
+index 0c92d42..7190ee9 100644
--- a/src/modules/macosx/module-coreaudio-device.c
+++ b/src/modules/macosx/module-coreaudio-device.c
-@@ -764,6 +764,7 @@ int pa__init(pa_module *m) {
+@@ -807,6 +807,7 @@ int pa__init(pa_module *m) {
pa_card_new_data_done(&card_new_data);
u->card->userdata = u;
u->card->set_profile = card_set_profile;
@@ -142,10 +149,10 @@ index 4bbb5d5..41f151f 100644
u->rtpoll = pa_rtpoll_new();
pa_thread_mq_init(&u->thread_mq, m->core->mainloop, u->rtpoll);
diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c
-index baa2f4f..0501ac8 100644
+index f906843..dce6674 100644
--- a/src/modules/module-card-restore.c
+++ b/src/modules/module-card-restore.c
-@@ -485,34 +485,38 @@ static pa_hook_result_t port_offset_change_callback(pa_core *c, pa_device_port *
+@@ -515,34 +515,38 @@ static pa_hook_result_t port_offset_change_callback(pa_core *c, pa_device_port *
return PA_HOOK_OK;
}
@@ -189,24 +196,24 @@ index baa2f4f..0501ac8 100644
+ pa_log_info("Restoring port latency offsets for card %s.", card->name);
PA_HASHMAP_FOREACH(p_info, e->ports, state)
-- if ((p = pa_hashmap_get(new_data->ports, p_info->name)))
-+ if ((p = pa_hashmap_get(card->ports, p_info->name)))
+- if ((p = pa_hashmap_get(new_data->ports, p_info->name))) {
++ if ((p = pa_hashmap_get(card->ports, p_info->name))) {
p->latency_offset = p_info->offset;
-
- entry_free(e);
+ if (!p->preferred_profile && p_info->profile)
+ pa_device_port_set_preferred_profile(p, p_info->profile);
diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
-index cc4c784..1b7f71b 100644
+index f92ac87..1a6e705 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
-@@ -151,6 +151,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
+@@ -148,6 +148,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
pa_assert(!pa_hashmap_isempty(data->profiles));
- c = pa_xnew(pa_card, 1);
+ c = pa_xnew0(pa_card, 1);
+ c->state = PA_CARD_STATE_INIT;
if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_CARD, c, data->namereg_fail))) {
pa_xfree(c);
-@@ -159,12 +160,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
+@@ -156,12 +157,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
pa_card_new_data_set_name(data, name);
@@ -219,22 +226,24 @@ index cc4c784..1b7f71b 100644
c->core = core;
c->name = pa_xstrdup(data->name);
c->proplist = pa_proplist_copy(data->proplist);
-@@ -187,30 +182,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
+@@ -184,38 +179,43 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
PA_HASHMAP_FOREACH(port, c->ports, state)
port->card = c;
-- c->active_profile = NULL;
-- c->save_profile = false;
--
- if (data->active_profile)
- if ((c->active_profile = pa_hashmap_get(c->profiles, data->active_profile)))
- c->save_profile = data->save_profile;
--
++ pa_device_init_description(c->proplist, c);
++ pa_device_init_icon(c->proplist, true);
++ pa_device_init_intended_roles(c->proplist);
+
- if (!c->active_profile) {
- PA_HASHMAP_FOREACH(profile, c->profiles, state) {
- if (profile->available == PA_AVAILABLE_NO)
- continue;
--
++ return c;
++}
+
- if (!c->active_profile || profile->priority > c->active_profile->priority)
- c->active_profile = profile;
- }
@@ -245,27 +254,10 @@ index cc4c784..1b7f71b 100644
- c->active_profile = profile;
- }
- pa_assert(c->active_profile);
-- }
--
- c->userdata = NULL;
- c->set_profile = NULL;
- c->active_profile = NULL;
-@@ -219,13 +190,39 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
- pa_device_init_icon(c->proplist, true);
- pa_device_init_intended_roles(c->proplist);
-
-- pa_assert_se(pa_idxset_put(core->cards, c, &c->index) >= 0);
-+ return c;
-+}
-
-- pa_log_info("Created %u \"%s\"", c->index, c->name);
-- pa_subscription_post(core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, c->index);
+void pa_card_put(pa_card *card) {
+ pa_card_profile *profile;
+ void *state;
-
-- pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_PUT], c);
-- return c;
++
+ pa_assert(card);
+
+ PA_HASHMAP_FOREACH(profile, card->profiles, state) {
@@ -274,8 +266,11 @@ index cc4c784..1b7f71b 100644
+
+ if (!card->active_profile || profile->priority > card->active_profile->priority)
+ card->active_profile = profile;
-+ }
-+
+ }
+
+- pa_device_init_description(c->proplist, c);
+- pa_device_init_icon(c->proplist, true);
+- pa_device_init_intended_roles(c->proplist);
+ /* If all profiles are unavailable, then we still need to pick one */
+ if (!card->active_profile) {
+ PA_HASHMAP_FOREACH(profile, card->profiles, state)
@@ -283,19 +278,24 @@ index cc4c784..1b7f71b 100644
+ card->active_profile = profile;
+ }
+ pa_assert(card->active_profile);
-+
+
+- pa_assert_se(pa_idxset_put(core->cards, c, &c->index) >= 0);
+ pa_hook_fire(&card->core->hooks[PA_CORE_HOOK_CARD_NEW], card);
-+
+
+- pa_log_info("Created %u \"%s\"", c->index, c->name);
+- pa_subscription_post(core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, c->index);
+ pa_assert_se(pa_idxset_put(card->core->cards, card, &card->index) >= 0);
+ card->state = PA_CARD_STATE_LINKED;
-+
+
+- pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_PUT], c);
+- return c;
+ pa_log_info("Created %u \"%s\"", card->index, card->name);
+ pa_hook_fire(&card->core->hooks[PA_CORE_HOOK_CARD_PUT], card);
+ pa_subscription_post(card->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, card->index);
}
void pa_card_free(pa_card *c) {
-@@ -292,17 +289,24 @@ int pa_card_set_profile(pa_card *c, pa_card_profile *profile, bool save) {
+@@ -306,20 +306,27 @@ int pa_card_set_profile(pa_card *c, pa_card_profile *profile, bool save) {
return 0;
}
@@ -317,6 +317,9 @@ index cc4c784..1b7f71b 100644
c->active_profile = profile;
c->save_profile = save;
+ if (save)
+ update_port_preferred_profile(c);
+
- pa_hook_fire(&c->core->hooks[PA_CORE_HOOK_CARD_PROFILE_CHANGED], c);
+ if (c->state != PA_CARD_STATE_INIT) {
+ pa_log_info("Changed profile of card %u \"%s\" to %s", c->index, c->name, profile->name);
@@ -327,22 +330,22 @@ index cc4c784..1b7f71b 100644
return 0;
}
diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h
-index 1c33958..dbbc1c2 100644
+index fff9057..a944301 100644
--- a/src/pulsecore/card.h
+++ b/src/pulsecore/card.h
-@@ -37,6 +37,11 @@ typedef enum pa_available {
- #include <pulsecore/module.h>
- #include <pulsecore/idxset.h>
+@@ -34,6 +34,11 @@ typedef enum pa_available {
+ PA_AVAILABLE_YES = 2,
+ } pa_available_t;
+typedef enum pa_card_state {
+ PA_CARD_STATE_INIT,
+ PA_CARD_STATE_LINKED,
+} pa_card_state_t;
+
- typedef struct pa_card_profile {
+ struct pa_card_profile {
pa_card *card;
char *name;
-@@ -61,6 +66,7 @@ typedef struct pa_card_profile {
+@@ -66,6 +71,7 @@ struct pa_card_profile {
struct pa_card {
uint32_t index;
@@ -350,7 +353,7 @@ index 1c33958..dbbc1c2 100644
pa_core *core;
char *name;
-@@ -115,6 +121,7 @@ void pa_card_new_data_set_profile(pa_card_new_data *data, const char *profile);
+@@ -120,6 +126,7 @@ void pa_card_new_data_set_profile(pa_card_new_data *data, const char *profile);
void pa_card_new_data_done(pa_card_new_data *data);
pa_card *pa_card_new(pa_core *c, pa_card_new_data *data);
@@ -359,5 +362,5 @@ index 1c33958..dbbc1c2 100644
void pa_card_add_profile(pa_card *c, pa_card_profile *profile);
--
-2.1.4
+2.7.0
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch
index bb318aa..e0efa70 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch
@@ -1,4 +1,4 @@
-From 0136b73158f60d5dc630ae348b18df3b59a2a5c2 Mon Sep 17 00:00:00 2001
+From 690d567e298f6687b61c82660b051df5b25482ee Mon Sep 17 00:00:00 2001
From: Tanu Kaskinen <tanuk@iki.fi>
Date: Fri, 23 Oct 2015 13:37:11 +0300
Subject: [PATCH 4/4] alsa: set availability for (some) unavailable profiles
@@ -22,28 +22,36 @@ pa_card_profile, however.
BugLink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+Rebased on 8.0.
+
+Upstream-Status: Denied [The patch set needs some work to be accepted.
+The review thread:
+http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
- src/modules/alsa/module-alsa-card.c | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
+ src/modules/alsa/module-alsa-card.c | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
-index 5b39654..73a846c 100644
+index fe240f0..bdbdc12 100644
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
-@@ -366,6 +366,7 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
+@@ -366,6 +366,8 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
void *state;
pa_alsa_jack *jack;
- pa_device_port *port;
+ struct temp_port_avail *tp, *tports;
++ pa_device_port *port;
+ pa_card_profile *profile;
pa_assert(u);
-@@ -396,6 +397,29 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
- }
- report_port_state(port, u);
- }
+@@ -412,6 +414,29 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
+ pa_device_port_set_available(tp->port, tp->avail);
+
+ pa_xfree(tports);
+
+ /* Update profile availabilities. The logic could be improved; for now we
+ * only set obviously unavailable profiles (those that contain only
@@ -71,5 +79,5 @@ index 5b39654..73a846c 100644
}
--
-2.1.4
+2.7.0
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch
deleted file mode 100644
index ed94250..0000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-git-version-gen gets confused if a tarball is being built inside a git directory
-(ie your build directory is a subdirectory of a poky clone), and ends up calling
-the release 6.0-dirty. Add a shortcut exit so if a tarball is detected it
-doesn't attempt to look at the git status.
-
-Upstream-Status: Submitted (https://bugs.freedesktop.org/show_bug.cgi?id=90936)
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/git-version-gen b/git-version-gen
-index 7546884..079b93e 100755
---- a/git-version-gen
-+++ b/git-version-gen
-@@ -84,7 +84,10 @@ then
- v=`cat $tarball_version_file` || exit 1
- case $v in
- *$nl*) v= ;; # reject multi-line output
-- [0-9]*) ;;
-+ [0-9]*)
-+ echo "$v" | tr -d '\012'
-+ exit 0
-+ ;;
- *) v= ;;
- esac
- test -z "$v" \
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb
similarity index 72%
rename from meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb
rename to meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb
index ec629aa..b01ba8f 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb
@@ -3,16 +3,15 @@ require pulseaudio.inc
SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
file://0001-padsp-Make-it-compile-on-musl.patch \
file://0001-client-conf-Add-allow-autospawn-for-root.patch \
- file://0001-conf-parser-add-support-for-.d-directories.patch \
- file://fix-git-version-gen.patch \
file://volatiles.04_pulse \
file://0001-card-add-pa_card_profile.ports.patch \
file://0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch \
file://0003-card-move-profile-selection-after-pa_card_new.patch \
file://0004-alsa-set-availability-for-some-unavailable-profiles.patch \
+ file://0001-Revert-module-switch-on-port-available-Route-to-pref.patch \
"
-SRC_URI[md5sum] = "b691e83b7434c678dffacfa3a027750e"
-SRC_URI[sha256sum] = "b50640e0b80b1607600accfad2e45aabb79d379bf6354c9671efa2065477f6f6"
+SRC_URI[md5sum] = "8678442ba0bb4b4c33ac6f62542962df"
+SRC_URI[sha256sum] = "690eefe28633466cfd1ab9d85ebfa9376f6b622deec6bfee5091ac9737cd1989"
do_compile_prepend() {
mkdir -p ${S}/libltdl
--
2.7.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-02-17 16:56 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-17 16:56 [PATCH 0/4] Audio recipe updates Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 1/4] alsa-tools: 1.0.29 -> 1.1.0 Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 2/4] alsa-utils: " Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 3/4] alsa-plugins: " Tanu Kaskinen
2016-02-17 16:56 ` [PATCH 4/4] pulseaudio: 6.0 -> 8.0 Tanu Kaskinen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox