Skip to contentSkip to conversation

Audio recipe updates

PATCH In review Tanu Kaskinen 2 participants 7 messages Jul 20, 2016

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
similarity index 83%
rename from meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb
rename to meta/recipes-multimedia/libsndfile/libsndfile1_1.0.27.bb
index 80435d4..ec41719 100644
@@ -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
#2 lore raw

PATCH 2/3 pulseaudio: 8.0 -> 9.0

In reply to Tanu Kaskinen

Release 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
deleted file mode 100644
index 1c1e2fb..0000000
@@ -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
similarity index 69%
rename from meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
rename to meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
index be3655b..2f72ceb 100644
@@ -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
index bc32775..33f7709 100644
@@ -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
new file mode 100644
index 0000000..80c291f
@@ -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
similarity index 74%
rename from meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch
rename to meta/recipes-multimedia/pulseaudio/pulseaudio/0005-alsa-set-availability-for-some-unavailable-profiles.patch
index e0efa70..5563d2c 100644
@@ -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
similarity index 54%
rename from meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb
rename to meta/recipes-multimedia/pulseaudio/pulseaudio_9.0.bb
index b01ba8f..00f5442 100644
@@ -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
#3 lore raw

PATCH 3/3 pulseaudio: disable WebRTC code

In reply to 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.

---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++
 1 file changed, 4 insertions(+)
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +4 -0
index accafe1..2cf3fb4 100644
@@ -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
#4 lore raw

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.

---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++
 1 file changed, 4 insertions(+)
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +0 -0
index accafe1..2cf3fb4 100644

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 -1
 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)} \
--

2.8.1

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#5 lore raw

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.

---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++

 1 file changed, 4 insertions(+)
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +0 -0
index accafe1..2cf3fb4 100644
@@ -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

#6 lore raw

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.

---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++++

 1 file changed, 4 insertions(+)
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +0 -0
index accafe1..2cf3fb4 100644
@@ -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