SelectConfiguration not called by bluez for a bluetooth headset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Community,

I have two questions about how bluez would invoke the
SelectConfiguration provided by the registered media endpoint. I am
using bluez-4.101.

1. With a bluetooth speaker that supports A2DP, from logs of my
program manipulating bluez's dbus API I saw bluez had invoked the
SelectConfiguration method with parameters describing the capability
of the bluetooth speaker, so that my program could send back bluez a
dbus message with my preferred settings, e.g., 48k Hz frequency and
Mono.

However, when I tested with a bluetooth headset that only supports
HFP/HSP, bluez seems not calling SelectConfiguration, but
SetConfiguration directly. Furthermore, the "Configuration" in the
parameters of the SetConfiguration is an empty array:

   object path "/org/bluez/3765/hci1/dev_1C_48_F9_AD_19_EE/fd5"
   array [
      dict entry(
         string "Device"
         variant             object path
"/org/bluez/3765/hci1/dev_1C_48_F9_AD_19_EE"
      )
      dict entry(
         string "UUID"
         variant             string "0000111f-0000-1000-8000-00805f9b34fb"
      )
      dict entry(
         string "Codec"
         variant             byte 0
      )
      dict entry(
         string "Configuration"
         variant             array [
            ]
      )
      dict entry(
         string "NREC"
         variant             boolean true
      )
      dict entry(
         string "InbandRingtone"
         variant             boolean true
      )
      dict entry(
         string "Routing"
         variant             string "HCI"
      )
   ]

I am wondering if this is the reason that makes bluez not calling
SelectConfiguration for such bluetooth headsetl in the first place,
since it is not configurable at all.

Please confirm whether this is how bluez works.

Then how can I further know the frequency and the number of channel
supported by my bluetooth headset? (from my testing with different wav
files it seems only plays well format of S16_LE, 8kHz, mono)


2. For my bluetooth speaker that is configurable on frequency and the
number of channel, if I specify a particular configuration, then it
won't support other wave files with different configurations. For
example, if I specify the sample rate used by it to be 48k Hz, but I
play a wav file of 8k Hz instead, then it will be played 6 times
faster than expected, only a short screaming is heard.

Moreover, during testing I found that if I specify more than one bit
for frequency or channel_mode for example in the return message of
SelectConfiguration, the connection will simply fail.

So, does this mean my program, or the audio server, would have to
convert the format of sound files to the frequency, channel_mode etc
used by the remote bluetooth configured through SelectConfiguration
before playing sound files?

Many thanks for any comments!

Cheers,
Harry
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux