On 13.09.2017 05:54, Arun Raghavan wrote:
This breaks a lot of headsets, so disabling by default. Can be
re-enabled in configuration for specific hardware where it is deemed
necessary.

Also added some debug logging to be able to examine what MTU size is
reported by the device.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=102660
---
  src/modules/bluetooth/backend-native.c         | 1 +
  src/modules/bluetooth/module-bluez5-device.c   | 2 +-
  src/modules/bluetooth/module-bluez5-discover.c | 2 +-
  3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/modules/bluetooth/backend-native.c 
b/src/modules/bluetooth/backend-native.c
index 6eb4e1682..0f0104d89 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 c0e681b17..a37c3d54f 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -2256,7 +2256,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 97ff94357..c535ead41 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;

I think the patch should also address the crash that occurs when
the MTU reported by the kernel is odd. I am not sure what to do
in that case: Round down to an even value (which does not seem
to produce sound) or fall back to 48.

_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to