[pulseaudio] 01/07: New upstream version 11.1

Felipe Sateler fsateler at moszumanska.debian.org
Thu Sep 21 00:15:59 UTC 2017


This is an automated email from the git hooks/post-receive script.

fsateler pushed a commit to branch master
in repository pulseaudio.

commit 566eb308e762546c787714da8f6f4b8f1f54e42e
Author: Felipe Sateler <fsateler at debian.org>
Date:   Wed Sep 20 20:50:43 2017 -0300

    New upstream version 11.1
---
 .tarball-version                                 |  2 +-
 .version                                         |  2 +-
 NEWS                                             | 19 ++++++++++++++++++
 configure                                        | 20 +++++++++----------
 src/modules/alsa/alsa-mixer.c                    |  2 +-
 src/modules/alsa/mixer/profile-sets/default.conf | 15 ++++++++------
 src/modules/bluetooth/backend-native.c           |  1 +
 src/modules/bluetooth/module-bluez5-device.c     | 12 +++++++++++-
 src/modules/bluetooth/module-bluez5-discover.c   |  2 +-
 src/pulse/version.h                              |  4 ++--
 src/pulsecore/sink.c                             | 25 ++++++++++++++----------
 src/pulsecore/source.c                           | 23 ++++++++++++++--------
 12 files changed, 86 insertions(+), 41 deletions(-)

diff --git a/.tarball-version b/.tarball-version
index 2dbc24b..ef32e32 100644
--- a/.tarball-version
+++ b/.tarball-version
@@ -1 +1 @@
-11.0
+11.1
diff --git a/.version b/.version
index 2dbc24b..ef32e32 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-11.0
+11.1
diff --git a/NEWS b/NEWS
index 9a507a9..3a7c88f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,21 @@
+PulseAudio 11.1
+
+A bug fix release.
+
+ * Fix a crash in filter modules related to flat volumes and volume sharing
+ * Fix a crash when the bluetooth adapter reports weird MTU size
+ * Disable bluetooth MTU autodetection by default
+ * Add mixer handling back for hardware that doesn't have any alsa-lib
+   configuration
+ * Prioritize USB devices over built-in sound cards (11.0 was supposed to have
+   this feature, but the implementation turned out to be incomplete)
+
+Contributors
+
+  Arun Raghavan
+  Tanu Kaskinen
+
+
 PulseAudio 11.0
 
 Changes at a glance:
@@ -17,6 +35,7 @@ Changes at a glance:
    module-virtual-surround-sink
  * Fixed input device handling in module-waveout
  * Improved bluetooth MTU configuration
+ * GNU Hurd support
  * Applications can request LADSPA or virtual surround filtering for their
    streams
  * Support for 32-bit applications on 64-bit systems in padsp
diff --git a/configure b/configure
index 08a0192..6a48988 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pulseaudio 11.0.
+# Generated by GNU Autoconf 2.69 for pulseaudio 11.1.
 #
 # Report bugs to <pulseaudio-discuss (at) lists (dot) freedesktop (dot) org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='pulseaudio'
 PACKAGE_TARNAME='pulseaudio'
-PACKAGE_VERSION='11.0'
-PACKAGE_STRING='pulseaudio 11.0'
+PACKAGE_VERSION='11.1'
+PACKAGE_STRING='pulseaudio 11.1'
 PACKAGE_BUGREPORT='pulseaudio-discuss (at) lists (dot) freedesktop (dot) org'
 PACKAGE_URL='http://pulseaudio.org/'
 
@@ -1753,7 +1753,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures pulseaudio 11.0 to adapt to many kinds of systems.
+\`configure' configures pulseaudio 11.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1824,7 +1824,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pulseaudio 11.0:";;
+     short | recursive ) echo "Configuration of pulseaudio 11.1:";;
    esac
   cat <<\_ACEOF
 
@@ -2129,7 +2129,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pulseaudio configure 11.0
+pulseaudio configure 11.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2902,7 +2902,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pulseaudio $as_me 11.0, which was
+It was created by pulseaudio $as_me 11.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3858,7 +3858,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='pulseaudio'
- VERSION='11.0'
+ VERSION='11.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -30044,7 +30044,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pulseaudio $as_me 11.0, which was
+This file was extended by pulseaudio $as_me 11.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -30111,7 +30111,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pulseaudio config.status 11.0
+pulseaudio config.status 11.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index f59cad3..986cc7d 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -3989,6 +3989,7 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) {
     static const struct description_map well_known_descriptions[] = {
         { "analog-mono",            N_("Analog Mono") },
         { "analog-stereo",          N_("Analog Stereo") },
+        { "stereo-fallback",        N_("Stereo") },
         /* Note: Not translated to "Analog Stereo Input", because the source
          * name gets "Input" appended to it automatically, so adding "Input"
          * here would lead to the source name to become "Analog Stereo Input
@@ -4016,7 +4017,6 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) {
         { "iec958-dts-surround-51", N_("Digital Surround 5.1 (IEC958/DTS)") },
         { "hdmi-stereo",            N_("Digital Stereo (HDMI)") },
         { "hdmi-surround-51",       N_("Digital Surround 5.1 (HDMI)") },
-        { "unknown-stereo",         N_("Stereo") },
     };
 
     pa_assert(m);
diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf
index f412058..c360e77 100644
--- a/src/modules/alsa/mixer/profile-sets/default.conf
+++ b/src/modules/alsa/mixer/profile-sets/default.conf
@@ -115,6 +115,15 @@ paths-output = analog-output analog-output-lineout analog-output-speaker analog-
 paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic
 priority = 10
 
+# If everything else fails, try to use hw:0 as a stereo device.
+[Mapping stereo-fallback]
+device-strings = hw:%f
+fallback = yes
+channel-map = front-left,front-right
+paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2
+paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic
+priority = 1
+
 [Mapping analog-surround-21]
 device-strings = surround21:%f
 channel-map = front-left,front-right,lfe
@@ -460,12 +469,6 @@ priority = 1
 direction = input
 paths-input = multichannel-input
 
-[Mapping unknown-stereo]
-device-strings = hw:%f
-channel-map = front-left,front-right
-fallback = yes
-priority = 1
-
 ; An example for defining multiple-sink profiles
 #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]
 #description = Foobar
diff --git a/src/modules/bluetooth/backend-native.c b/src/modules/bluetooth/backend-native.c
index 6eb4e16..0f0104d 100644
--- a/src/modules/bluetooth/backend-native.c
+++ b/src/modules/bluetooth/backend-native.c
@@ -206,6 +206,7 @@ static int sco_acquire_cb(pa_bluetooth_transport *t, bool optional, size_t *imtu
         if (getsockopt(sock, SOL_SCO, SCO_OPTIONS, &sco_opt, &len) < 0)
             pa_log_warn("getsockopt(SCO_OPTIONS) failed, loading defaults");
         else {
+            pa_log_debug("autodetected imtu = omtu = %u", sco_opt.mtu);
             if (imtu) *imtu = sco_opt.mtu;
             if (omtu) *omtu = sco_opt.mtu;
         }
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
index c0e681b..530207a 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -787,6 +787,16 @@ static void transport_config_mtu(struct userdata *u) {
     if (u->profile == PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT || u->profile == PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY) {
         u->read_block_size = u->read_link_mtu;
         u->write_block_size = u->write_link_mtu;
+
+        if (!pa_frame_aligned(u->read_block_size, &u->source->sample_spec)) {
+            pa_log_debug("Got invalid read MTU: %lu, rounding down", u->read_block_size);
+            u->read_block_size = pa_frame_align(u->read_block_size, &u->source->sample_spec);
+        }
+
+        if (!pa_frame_aligned(u->write_block_size, &u->sink->sample_spec)) {
+            pa_log_debug("Got invalid write MTU: %lu, rounding down", u->write_block_size);
+            u->write_block_size = pa_frame_align(u->write_block_size, &u->sink->sample_spec);
+        }
     } else {
         u->read_block_size =
             (u->read_link_mtu - sizeof(struct rtp_header) - sizeof(struct rtp_payload))
@@ -2256,7 +2266,7 @@ int pa__init(pa_module* m) {
         goto fail_free_modargs;
     }
 
-    autodetect_mtu = true;
+    autodetect_mtu = false;
     if (pa_modargs_get_value_boolean(ma, "autodetect_mtu", &autodetect_mtu) < 0) {
         pa_log("Invalid boolean value for autodetect_mtu parameter");
         goto fail_free_modargs;
diff --git a/src/modules/bluetooth/module-bluez5-discover.c b/src/modules/bluetooth/module-bluez5-discover.c
index 97ff943..c535ead 100644
--- a/src/modules/bluetooth/module-bluez5-discover.c
+++ b/src/modules/bluetooth/module-bluez5-discover.c
@@ -124,7 +124,7 @@ int pa__init(pa_module *m) {
         goto fail;
     }
 
-    autodetect_mtu = true;
+    autodetect_mtu = false;
     if (pa_modargs_get_value_boolean(ma, "autodetect_mtu", &autodetect_mtu) < 0) {
         pa_log("Invalid boolean value for autodetect_mtu parameter");
         goto fail;
diff --git a/src/pulse/version.h b/src/pulse/version.h
index 06b09e1..2738cfe 100644
--- a/src/pulse/version.h
+++ b/src/pulse/version.h
@@ -33,7 +33,7 @@ PA_C_DECL_BEGIN
 /** Return the version of the header files. Keep in mind that this is
 a macro and not a function, so it is impossible to get the pointer of
 it. */
-#define pa_get_headers_version() ("11.0.0")
+#define pa_get_headers_version() ("11.1.0")
 
 /** Return the version of the library the current application is
  * linked to. */
@@ -53,7 +53,7 @@ const char* pa_get_library_version(void);
 #define PA_MAJOR 11
 
 /** The minor version of PA. \since 0.9.15 */
-#define PA_MINOR 0
+#define PA_MINOR 1
 
 /** The micro version of PA (will always be 0 from v1.0 onwards). \since 0.9.15 */
 #define PA_MICRO 0
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index a8b4cd3..cbca889 100644
--- a/src/pulsecore/sink.c
+++ b/src/pulsecore/sink.c
@@ -1710,7 +1710,8 @@ static void compute_reference_ratios(pa_sink *s) {
     PA_IDXSET_FOREACH(i, s->inputs, idx) {
         compute_reference_ratio(i);
 
-        if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER))
+        if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER)
+                && PA_SINK_IS_LINKED(i->origin_sink->state))
             compute_reference_ratios(i->origin_sink);
     }
 }
@@ -1737,7 +1738,8 @@ static void compute_real_ratios(pa_sink *s) {
             pa_cvolume_reset(&i->real_ratio, i->real_ratio.channels);
             i->soft_volume = i->volume_factor;
 
-            compute_real_ratios(i->origin_sink);
+            if (PA_SINK_IS_LINKED(i->origin_sink->state))
+                compute_real_ratios(i->origin_sink);
 
             continue;
         }
@@ -1836,7 +1838,8 @@ static void get_maximum_input_volume(pa_sink *s, pa_cvolume *max_volume, const p
         pa_cvolume remapped;
 
         if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER)) {
-            get_maximum_input_volume(i->origin_sink, max_volume, channel_map);
+            if (PA_SINK_IS_LINKED(i->origin_sink->state))
+                get_maximum_input_volume(i->origin_sink, max_volume, channel_map);
 
             /* Ignore this input. The origin sink uses volume sharing, so this
              * input's volume will be set to be equal to the root sink's real
@@ -1892,7 +1895,8 @@ static void update_real_volume(pa_sink *s, const pa_cvolume *new_volume, pa_chan
                 compute_reference_ratio(i);
             }
 
-            update_real_volume(i->origin_sink, new_volume, channel_map);
+            if (PA_SINK_IS_LINKED(i->origin_sink->state))
+                update_real_volume(i->origin_sink, new_volume, channel_map);
         }
     }
 }
@@ -1947,11 +1951,12 @@ static void propagate_reference_volume(pa_sink *s) {
         pa_cvolume new_volume;
 
         if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER)) {
-            propagate_reference_volume(i->origin_sink);
+            if (PA_SINK_IS_LINKED(i->origin_sink->state))
+                propagate_reference_volume(i->origin_sink);
 
             /* Since the origin sink uses volume sharing, this input's volume
              * needs to be updated to match the root sink's real volume, but
-             * that will be done later in update_shared_real_volume(). */
+             * that will be done later in update_real_volume(). */
             continue;
         }
 
@@ -2005,7 +2010,8 @@ static bool update_reference_volume(pa_sink *s, const pa_cvolume *v, const pa_ch
         return false;
 
     PA_IDXSET_FOREACH(i, s->inputs, idx) {
-        if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER))
+        if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER)
+                && PA_SINK_IS_LINKED(i->origin_sink->state))
             update_reference_volume(i->origin_sink, v, channel_map, false);
     }
 
@@ -2176,7 +2182,8 @@ static void propagate_real_volume(pa_sink *s, const pa_cvolume *old_real_volume)
             pa_sw_cvolume_multiply(&new_volume, &new_volume, &i->reference_ratio);
             pa_sink_input_set_volume_direct(i, &new_volume);
 
-            if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER))
+            if (i->origin_sink && (i->origin_sink->flags & PA_SINK_SHARE_VOLUME_WITH_MASTER)
+                    && PA_SINK_IS_LINKED(i->origin_sink->state))
                 propagate_real_volume(i->origin_sink, old_real_volume);
         }
     }
@@ -3527,8 +3534,6 @@ unsigned pa_device_init_priority(pa_proplist *p) {
             priority += 500;
         else if (pa_streq(s, "portable"))
             priority += 450;
-        else if (pa_streq(s, "internal"))
-            priority += 400;
     }
 
     if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_BUS))) {
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
index b2936c5..e0d32af 100644
--- a/src/pulsecore/source.c
+++ b/src/pulsecore/source.c
@@ -1284,7 +1284,8 @@ static void compute_reference_ratios(pa_source *s) {
     PA_IDXSET_FOREACH(o, s->outputs, idx) {
         compute_reference_ratio(o);
 
-        if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER))
+        if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER)
+                && PA_SOURCE_IS_LINKED(o->destination_source->state))
             compute_reference_ratios(o->destination_source);
     }
 }
@@ -1311,7 +1312,8 @@ static void compute_real_ratios(pa_source *s) {
             pa_cvolume_reset(&o->real_ratio, o->real_ratio.channels);
             o->soft_volume = o->volume_factor;
 
-            compute_real_ratios(o->destination_source);
+            if (PA_SOURCE_IS_LINKED(o->destination_source->state))
+                compute_real_ratios(o->destination_source);
 
             continue;
         }
@@ -1410,7 +1412,8 @@ static void get_maximum_output_volume(pa_source *s, pa_cvolume *max_volume, cons
         pa_cvolume remapped;
 
         if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER)) {
-            get_maximum_output_volume(o->destination_source, max_volume, channel_map);
+            if (PA_SOURCE_IS_LINKED(o->destination_source->state))
+                get_maximum_output_volume(o->destination_source, max_volume, channel_map);
 
             /* Ignore this output. The origin source uses volume sharing, so this
              * output's volume will be set to be equal to the root source's real
@@ -1466,7 +1469,8 @@ static void update_real_volume(pa_source *s, const pa_cvolume *new_volume, pa_ch
                 compute_reference_ratio(o);
             }
 
-            update_real_volume(o->destination_source, new_volume, channel_map);
+            if (PA_SOURCE_IS_LINKED(o->destination_source->state))
+                update_real_volume(o->destination_source, new_volume, channel_map);
         }
     }
 }
@@ -1521,11 +1525,12 @@ static void propagate_reference_volume(pa_source *s) {
         pa_cvolume new_volume;
 
         if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER)) {
-            propagate_reference_volume(o->destination_source);
+            if (PA_SOURCE_IS_LINKED(o->destination_source->state))
+                propagate_reference_volume(o->destination_source);
 
             /* Since the origin source uses volume sharing, this output's volume
              * needs to be updated to match the root source's real volume, but
-             * that will be done later in update_shared_real_volume(). */
+             * that will be done later in update_real_volume(). */
             continue;
         }
 
@@ -1579,7 +1584,8 @@ static bool update_reference_volume(pa_source *s, const pa_cvolume *v, const pa_
         return false;
 
     PA_IDXSET_FOREACH(o, s->outputs, idx) {
-        if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER))
+        if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER)
+                && PA_SOURCE_IS_LINKED(o->destination_source->state))
             update_reference_volume(o->destination_source, v, channel_map, false);
     }
 
@@ -1759,7 +1765,8 @@ static void propagate_real_volume(pa_source *s, const pa_cvolume *old_real_volum
             pa_sw_cvolume_multiply(&new_volume, &new_volume, &o->reference_ratio);
             pa_source_output_set_volume_direct(o, &new_volume);
 
-            if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER))
+            if (o->destination_source && (o->destination_source->flags & PA_SOURCE_SHARE_VOLUME_WITH_MASTER)
+                    && PA_SOURCE_IS_LINKED(o->destination_source->state))
                 propagate_real_volume(o->destination_source, old_real_volume);
         }
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-pulseaudio/pulseaudio.git



More information about the pkg-pulseaudio-devel mailing list