Audio recipe updates
cover Audio recipe updates
The following changes since commit 8b369cdd73ab17cdf834a591b97b25840caeb740:
toaster.bbclass: only scan files-in-image.txt if it exists (2016-07-19 09:03:28 +0100)
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 (3):
libsndfile1: 1.0.26 -> 1.0.27
pulseaudio: 8.0 -> 9.0
pulseaudio: disable WebRTC code
...libsndfile1_1.0.26.bb => libsndfile1_1.0.27.bb} | 4 +-
meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 +
...le-switch-on-port-available-Route-to-pref.patch | 268 ---------------
...th-fail-if-user-requested-profile-doesn-.patch} | 30 +-
.../0001-card-add-pa_card_profile.ports.patch | 218 ------------
...-client-conf-Add-allow-autospawn-for-root.patch | 18 +-
...ard-don-t-allow-the-CARD_NEW-hook-to-fail.patch | 37 ++
...-move-profile-selection-after-pa_card_new.patch | 373 ++++++++++++---------
...rd-remove-pa_card_new_data.active_profile.patch | 72 ++++
...ailability-for-some-unavailable-profiles.patch} | 38 +--
.../{pulseaudio_8.0.bb => pulseaudio_9.0.bb} | 14 +-
11 files changed, 379 insertions(+), 697 deletions(-)
rename meta/recipes-multimedia/libsndfile/{libsndfile1_1.0.26.bb => libsndfile1_1.0.27.bb} (83%)
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
rename meta/recipes-multimedia/pulseaudio/pulseaudio/{0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch => 0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch} (69%)
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch
create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch
create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0004-card-remove-pa_card_new_data.active_profile.patch
rename meta/recipes-multimedia/pulseaudio/pulseaudio/{0004-alsa-set-availability-for-some-unavailable-profiles.patch => 0005-alsa-set-availability-for-some-unavailable-profiles.patch} (74%)
rename meta/recipes-multimedia/pulseaudio/{pulseaudio_8.0.bb => pulseaudio_9.0.bb} (54%)Signature · 1 line
2.8.1
PATCH 1/3 libsndfile1: 1.0.26 -> 1.0.27
---
.../libsndfile/{libsndfile1_1.0.26.bb => libsndfile1_1.0.27.bb} | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-multimedia/libsndfile/{libsndfile1_1.0.26.bb => libsndfile1_1.0.27.bb} (83%)meta/recipes-multimedia/libsndfile/libsndfile1_1.0.27.bb renamed from meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb +2 -2
@@ -7,8 +7,8 @@ LICENSE = "LGPLv2.1" SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz" -SRC_URI[md5sum] = "ec810a0c60c08772a8a5552704b63393" -SRC_URI[sha256sum] = "cd6520ec763d1a45573885ecb1f8e4e42505ac12180268482a44b28484a25092" +SRC_URI[md5sum] = "fd1d97c6077f03b5d984d7956ffedb7a" +SRC_URI[sha256sum] = "a391952f27f4a92ceb2b4c06493ac107896ed6c76be9a613a4731f076d30fac0" LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
Signature · 1 line
2.8.1
PATCH 2/3 pulseaudio: 8.0 -> 9.0
In reply to Tanu KaskinenRelease notes:
https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/9.0/
Rebased 0001-client-conf-Add-allow-autospawn-for-root.patch.
Removed 0001-Revert-module-switch-on-port-available-Route-to-pref.patch, because the issues that were caused by the reverted commit have been fixed.
The patch set that fixes the initial selection of HDMI profiles (YOCTO#8448) is replaced with updated patches cherry-picked from upstream.
---
...le-switch-on-port-available-Route-to-pref.patch | 268 ---------------
...th-fail-if-user-requested-profile-doesn-.patch} | 30 +-
.../0001-card-add-pa_card_profile.ports.patch | 218 ------------
...-client-conf-Add-allow-autospawn-for-root.patch | 18 +-
...ard-don-t-allow-the-CARD_NEW-hook-to-fail.patch | 37 ++
...-move-profile-selection-after-pa_card_new.patch | 373 ++++++++++++---------
...rd-remove-pa_card_new_data.active_profile.patch | 72 ++++
...ailability-for-some-unavailable-profiles.patch} | 38 +--
.../{pulseaudio_8.0.bb => pulseaudio_9.0.bb} | 14 +-
9 files changed, 373 insertions(+), 695 deletions(-)
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
rename meta/recipes-multimedia/pulseaudio/pulseaudio/{0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch => 0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch} (69%)
delete mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch
create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch
create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/0004-card-remove-pa_card_new_data.active_profile.patch
rename meta/recipes-multimedia/pulseaudio/pulseaudio/{0004-alsa-set-availability-for-some-unavailable-profiles.patch => 0005-alsa-set-availability-for-some-unavailable-profiles.patch} (74%)
rename meta/recipes-multimedia/pulseaudio/{pulseaudio_8.0.bb => pulseaudio_9.0.bb} (54%)meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch deleted +0 -268
@@ -1,268 +0,0 @@ -From b8b9b3da94a0c27090ceba243fdf54fb518c5489 Mon Sep 17 00:00:00 2001 -From: Tanu Kaskinen <[email protected]> -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 <[email protected]> ---- - 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 -
meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch renamed from meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch +13 -17
@@ -1,32 +1,26 @@ -From 339eb179baa7810113f6456accc05b3a32c1cdba Mon Sep 17 00:00:00 2001 +From 9c3cdfcd198ef9727ea542f284ac6d8c1bcd7a3a Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen <[email protected]> Date: Fri, 23 Oct 2015 12:36:34 +0300 -Subject: [PATCH 2/4] alsa, bluetooth: fail if user-requested profile doesn't +Subject: [PATCH 1/5] alsa, bluetooth: fail if user-requested profile doesn't exist If we can't fulfill the user request fully, I think we shouldn't fulfill it at all, to make it clear that the requested operation didn't succeed. -http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448 - -Signed-off-by: Jussi Kukkonen <[email protected]> - -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] +Upstream-Status: Accepted [expected in 10.0] Signed-off-by: Tanu Kaskinen <[email protected]> --- - src/modules/alsa/module-alsa-card.c | 10 ++++++++-- - src/modules/bluetooth/module-bluez4-device.c | 6 ++++-- - 2 files changed, 12 insertions(+), 4 deletions(-) + src/modules/alsa/module-alsa-card.c | 11 +++++++++-- + src/modules/bluetooth/module-bluez4-device.c | 7 +++++-- + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c -index a7fec04..32f517e 100644 +index e5cc4ae..d761683 100644 --- a/src/modules/alsa/module-alsa-card.c +++ b/src/modules/alsa/module-alsa-card.c -@@ -754,8 +754,14 @@ int pa__init(pa_module *m) { +@@ -799,8 +799,15 @@ int pa__init(pa_module *m) { goto fail; }
@@ -37,6 +31,7 @@ index a7fec04..32f517e 100644 + pa_card_new_data_set_profile(&data, profile); + else { + pa_log("No such profile: %s", profile); ++ pa_card_new_data_done(&data); + goto fail; + } + }
@@ -44,10 +39,10 @@ index a7fec04..32f517e 100644 u->card = pa_card_new(m->core, &data); pa_card_new_data_done(&data); diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c -index b40c6a0..94e6988 100644 +index 9a921a5..a2de525 100644 --- a/src/modules/bluetooth/module-bluez4-device.c +++ b/src/modules/bluetooth/module-bluez4-device.c -@@ -2310,8 +2310,10 @@ static int add_card(struct userdata *u) { +@@ -2301,8 +2301,11 @@ static int add_card(struct userdata *u) { if ((default_profile = pa_modargs_get_value(u->modargs, "profile", NULL))) { if (pa_hashmap_get(data.profiles, default_profile)) pa_card_new_data_set_profile(&data, default_profile);
@@ -55,11 +50,12 @@ index b40c6a0..94e6988 100644 - pa_log_warn("Profile '%s' not valid or not supported by device.", default_profile); + else { + pa_log("Profile '%s' not valid or not supported by device.", default_profile); ++ pa_card_new_data_done(&data); + return -1; + } } u->card = pa_card_new(u->core, &data); -- -2.1.4 +2.8.1
meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch deleted +0 -218
218 lines not on this page · raw message
meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch +9 -9
@@ -1,4 +1,4 @@ -From 1cb5647f76dc8cd7bacbce2a64fac9e6c2dc3b16 Mon Sep 17 00:00:00 2001 +From babec3a50dd710d26b72f6c6d43bd79b04e954a6 Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen <[email protected]> Date: Tue, 28 Apr 2015 14:32:43 +0300 Subject: [PATCH] client-conf: Add allow-autospawn-for-root
@@ -24,10 +24,10 @@ Signed-off-by: Tanu Kaskinen <[email protected]> 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/man/pulse-client.conf.5.xml.in b/man/pulse-client.conf.5.xml.in -index 1002dbe..0058490 100644 +index b88898c..e737c96 100644 --- a/man/pulse-client.conf.5.xml.in +++ b/man/pulse-client.conf.5.xml.in -@@ -71,6 +71,15 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. +@@ -82,6 +82,15 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. </option> <option>
@@ -44,7 +44,7 @@ index 1002dbe..0058490 100644 run when autospawning. Defaults to a path configured at compile time.</p> diff --git a/src/pulse/client-conf.c b/src/pulse/client-conf.c -index 83331f8..0474583 100644 +index a3c9486..9f68ee5 100644 --- a/src/pulse/client-conf.c +++ b/src/pulse/client-conf.c @@ -138,6 +138,7 @@ void pa_client_conf_load(pa_client_conf *c, bool load_from_x11, bool load_from_e
@@ -56,13 +56,13 @@ index 83331f8..0474583 100644 { "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL }, { "enable-shm", pa_config_parse_not_bool, &c->disable_shm, NULL }, diff --git a/src/pulse/client-conf.h b/src/pulse/client-conf.h -index eac705a..131393a 100644 +index 7691ec7..19db7ed 100644 --- a/src/pulse/client-conf.h +++ b/src/pulse/client-conf.h @@ -38,6 +38,7 @@ typedef struct pa_client_conf { char *cookie_file_from_application; char *cookie_file_from_client_conf; - bool autospawn, disable_shm, auto_connect_localhost, auto_connect_display; + bool autospawn, disable_shm, disable_memfd, auto_connect_localhost, auto_connect_display; + bool allow_autospawn_for_root; size_t shm_size; } pa_client_conf;
@@ -80,10 +80,10 @@ index 26b7790..69830ef 100644 ; extra-arguments = --log-target=syslog diff --git a/src/pulse/context.c b/src/pulse/context.c -index 4bc445f..d6c3f6d 100644 +index 69be5f4..d6e13e8 100644 --- a/src/pulse/context.c +++ b/src/pulse/context.c -@@ -976,7 +976,7 @@ int pa_context_connect( +@@ -1027,7 +1027,7 @@ int pa_context_connect( if (!(flags & PA_CONTEXT_NOAUTOSPAWN) && c->conf->autospawn) { #ifdef HAVE_GETUID
@@ -93,5 +93,5 @@ index 4bc445f..d6c3f6d 100644 else { c->do_autospawn = true; -- -1.9.3 +2.8.1
meta/recipes-multimedia/pulseaudio/pulseaudio/0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch new file +37 -0
@@ -0,0 +1,37 @@ +From d4e6d07fef28d1bd8bfbceab4cc196ef54c23dd8 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen <[email protected]> +Date: Tue, 7 Jun 2016 16:51:00 +0300 +Subject: [PATCH 2/5] card: don't allow the CARD_NEW hook to fail + +There is currently no use for allowing modules to cancel card creation, +and I don't see need for that in the future either. Let's simplify +things by removing the failure handling code. + +Upstream-Status: Accepted [expected in 10.0] + +Signed-off-by: Tanu Kaskinen <[email protected]> +--- + src/pulsecore/card.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c +index 410746b..0ac70b9 100644 +--- a/src/pulsecore/card.c ++++ b/src/pulsecore/card.c +@@ -149,12 +149,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { + } + + pa_card_new_data_set_name(data, name); +- +- if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_NEW], data) < 0) { +- pa_xfree(c); +- pa_namereg_unregister(core, name); +- return NULL; +- } ++ pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_NEW], data); + + c->core = core; + c->name = pa_xstrdup(data->name); +-- +2.8.1 +
meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch +218 -155
547 lines not on this page · raw message
meta/recipes-multimedia/pulseaudio/pulseaudio/0004-card-remove-pa_card_new_data.active_profile.patch new file +72 -0
72 lines not on this page · raw message
meta/recipes-multimedia/pulseaudio/pulseaudio/0005-alsa-set-availability-for-some-unavailable-profiles.patch renamed from meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch +17 -21
@@ -1,7 +1,7 @@ -From 690d567e298f6687b61c82660b051df5b25482ee Mon Sep 17 00:00:00 2001 +From ae6a01ba204b480bda6a5b4431be3d22e53a7006 Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen <[email protected]> Date: Fri, 23 Oct 2015 13:37:11 +0300 -Subject: [PATCH 4/4] alsa: set availability for (some) unavailable profiles +Subject: [PATCH 5/5] alsa: set availability for (some) unavailable profiles The alsa card hasn't so far set any availability for profiles. That caused an issue with some HDMI hardware: the sound card has two HDMI
@@ -22,50 +22,46 @@ pa_card_profile, however. BugLink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8448 -Signed-off-by: Jussi Kukkonen <[email protected]> - -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] +Upstream-Status: Accepted [expected in 10.0] Signed-off-by: Tanu Kaskinen <[email protected]> --- - src/modules/alsa/module-alsa-card.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) + src/modules/alsa/module-alsa-card.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c -index fe240f0..bdbdc12 100644 +index 1976230..323e08a 100644 --- a/src/modules/alsa/module-alsa-card.c +++ b/src/modules/alsa/module-alsa-card.c -@@ -366,6 +366,8 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { +@@ -366,6 +366,7 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { void *state; pa_alsa_jack *jack; struct temp_port_avail *tp, *tports; -+ pa_device_port *port; + pa_card_profile *profile; pa_assert(u); -@@ -412,6 +414,29 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { +@@ -426,6 +427,32 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { + if (tp->avail == PA_AVAILABLE_NO) 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 + * unavailable ports) to PA_AVAILABLE_NO and all others to + * PA_AVAILABLE_UNKNOWN. */ + PA_HASHMAP_FOREACH(profile, u->card->profiles, state) { ++ pa_device_port *port; + void *state2; + pa_available_t available = PA_AVAILABLE_NO; + + /* Don't touch the "off" profile. */ -+ if (pa_hashmap_size(profile->ports) == 0) ++ if (profile->n_sources == 0 && profile->n_sinks == 0) + continue; + -+ PA_HASHMAP_FOREACH(port, profile->ports, state2) { ++ PA_HASHMAP_FOREACH(port, u->card->ports, state2) { ++ if (!pa_hashmap_get(port->profiles, profile->name)) ++ continue; ++ + if (port->available != PA_AVAILABLE_NO) { + available = PA_AVAILABLE_UNKNOWN; + break;
@@ -75,9 +71,9 @@ index fe240f0..bdbdc12 100644 + pa_card_profile_set_available(profile, available); + } + + pa_xfree(tports); return 0; } - -- -2.7.0 +2.8.1
meta/recipes-multimedia/pulseaudio/pulseaudio_9.0.bb renamed from meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb +7 -7
@@ -3,15 +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://volatiles.04_pulse \ - file://0001-card-add-pa_card_profile.ports.patch \ - file://0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch \ + file://0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch \ + file://0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.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 \ + file://0004-card-remove-pa_card_new_data.active_profile.patch \ + file://0005-alsa-set-availability-for-some-unavailable-profiles.patch \ + file://volatiles.04_pulse \ " -SRC_URI[md5sum] = "8678442ba0bb4b4c33ac6f62542962df" -SRC_URI[sha256sum] = "690eefe28633466cfd1ab9d85ebfa9376f6b622deec6bfee5091ac9737cd1989" +SRC_URI[md5sum] = "da7162541b3a9bc20576dbd0d7d1489a" +SRC_URI[sha256sum] = "c3d3d66b827f18fbe903fe3df647013f09fc1e2191c035be1ee2d82a9e404686" do_compile_prepend() { mkdir -p ${S}/libltdl
Signature · 1 line
2.8.1
PATCH 3/3 pulseaudio: disable WebRTC code
In reply to Tanu KaskinenWhen updating pulseaudio to 9.0, I noticed webrtc-audio-processing is a potential floating dependency. It's not an issue right now, because webrtc-audio-processing isn't packaged for OpenEmbedded, but it would become an issue if anyone added the library to OE.
--- meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++ 1 file changed, 4 insertions(+)
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +4 -0
@@ -37,6 +37,10 @@ EXTRA_OECONF = "\ # oe-core nor meta-oe, so let's not add a PACKAGECONFIG entry for it for now. EXTRA_OECONF += "--without-soxr" +# The WebRTC echo canceller depends on the webrtc-audio-processing library, +# which is not yet packaged for OpenEmbedded. +EXTRA_OECONF += "--disable-webrtc-aec" + 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)} \
Signature · 1 line
2.8.1
Re: [PATCH 3/3] pulseaudio: disable WebRTC code
Quoted 15 lines · Tanu Kaskinen
When updating pulseaudio to 9.0, I noticed webrtc-audio-processing is a potential floating dependency. It's not an issue right now, because webrtc-audio-processing isn't packaged for OpenEmbedded, but it would become an issue if anyone added the library to OE.
Signed-off-by Tanu Kaskinen <[email protected]>--- meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++ 1 file changed, 4 insertions(+)meta/recipes-multimedia/pulseaudio/pulseaudio.inc +0
-0
meta/recipes-multimedia/pulseaudio/pulseaudio.inc EXTRA_OECONF = "\ · line 43
Quoted 7 lines
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +4
-0@@ -37,6 +37,10 @@ EXTRA_OECONF = "\ # oe-core nor meta-oe, so let's not add a PACKAGECONFIG entry for it for now. EXTRA_OECONF += "--without-soxr" +# The WebRTC echo canceller depends on the webrtc-audio-processing library, +# which is not yet packaged for OpenEmbedded. +EXTRA_OECONF += "--disable-webrtc-aec" +
may be turn it into a packageconfig ?
Quoted 11 lines
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +0
-1PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ --2.8.1
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [PATCH 3/3] pulseaudio: disable WebRTC code
Quoted 19 lines · Khem Raj
Quoted 18 lines · Tanu Kaskinen
When updating pulseaudio to 9.0, I noticed webrtc-audio-processing is a potential floating dependency. It's not an issue right now, because webrtc-audio-processing isn't packaged for OpenEmbedded, but it would become an issue if anyone added the library to OE.
Signed-off-by Tanu Kaskinen <[email protected]>---
meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++1 file changed, 4 insertions(+)meta/recipes-multimedia/pulseaudio/pulseaudio.inc +0
-0@@ -37,6 +37,10 @@ EXTRA_OECONF = "\ # oe-core nor meta-oe, so let's not add a PACKAGECONFIG entry for it for now.EXTRA_OECONF += "--without-soxr"
Quoted 6 lines
meta/recipes-multimedia/pulseaudio/pulseaudio.inc EXTRA_OECONF = "\ · line 43
Quoted 4 lines
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +4
-0+# The WebRTC echo canceller depends on the webrtc-audio-processing library, +# which is not yet packaged for OpenEmbedded. +EXTRA_OECONF += "--disable-webrtc-aec" +may be turn it into a packageconfig ?
Ok, I can do that. I felt uncomfortable adding a packageconfig for this, because I'd have to reference a non-existing recipe, and who knows what the recipe will actually be named when it gets packaged, but I suppose a potential naming mismatch isn't a big risk.
--
Tanu
Re: [PATCH 3/3] pulseaudio: disable WebRTC code
Quoted 27 lines · Tanu Kaskinen
Quoted 19 lines · Khem Raj
Quoted 18 lines · Tanu Kaskinen
When updating pulseaudio to 9.0, I noticed webrtc-audio-processing is a potential floating dependency. It's not an issue right now, because webrtc-audio-processing isn't packaged for OpenEmbedded, but it would become an issue if anyone added the library to OE.
Signed-off-by Tanu Kaskinen <[email protected]>---
meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++1 file changed, 4 insertions(+)meta/recipes-multimedia/pulseaudio/pulseaudio.inc +0
-0@@ -37,6 +37,10 @@ EXTRA_OECONF = "\ # oe-core nor meta-oe, so let's not add a PACKAGECONFIG entry for it for now.EXTRA_OECONF += "--without-soxr"
Quoted 6 lines
meta/recipes-multimedia/pulseaudio/pulseaudio.inc EXTRA_OECONF = "\ · line 43
Quoted 4 lines
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +4
-0+# The WebRTC echo canceller depends on the webrtc-audio-processing library, +# which is not yet packaged for OpenEmbedded. +EXTRA_OECONF += "--disable-webrtc-aec" +may be turn it into a packageconfig ?
Quoted 4 lines
Ok, I can do that. I felt uncomfortable adding a packageconfig for this, because I'd have to reference a non-existing recipe, and who knows what the recipe will actually be named when it gets packaged, but I suppose a potential naming mismatch isn't a big risk.
I sent a patch for this now.
Assuming that there are no further comments, please apply the first two patches of this series and ignore the third one.
--
Tanu