When using A2DP with SBC codec resulting bitrate mainly depends on bitpool parameter

Now on my Linux machine, my goal is to know bitpool value when playing audio to a Bluetooth A2DP receiver. With wireshark I've captured frames when connecting to this bluetooth receiver, in AVDTP protocol frames I found frame getting/setting bluetooth receiver capabilities. I can see actual A2Dp codec configuration :

Service: Media Codec - Audio SBC (44100 | JointStereo | block: 16 | subbands: 8 | allocation: Loudness | bitpool: 2..53) 

I got bitpool range value, but when playing, this value can change when radio link is bad...

How can I get current bitpool when playing?

I've captured bluetooth frames before and during playing, but I did not found any frame giving bitpool current value (when playing most of frames are HCI H4 frames)


When playing audio, audio profiles A2DP or SCO can be selected using blueman applet. Be sure to select A2DP profile. After, in order to decode frames, all bluetooth connection process must be recorded using wireshark. If it is not the case, decoded frames will be indicated as L2CAP or HCI H4 frames in wireshark. When opening frame you will see

frame is out of any "connection handle" session

So after recording a whole BT session, I can get SBC frames. Bitpool info is provided in these frames.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.