Does SBC support dynamically changing bit rates and frame lengths?

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

 



Hi folks,

I use my mobile phone as the source of an A2DP (Bluetooth) link and a Linux
box as the sink of this link. The connection is successfully established and
pulseaudio on the Linux box (sink) creates a bluez_source. As soon as the
sink receives the first A2DP frame and tries to decode it with sbc_decode(),
the assertion "pa_assert_fp((size_t) decoded == a2dp->frame_length);" in
a2dp_process_push() (module-bluetooth-device.c) fails.

The frame length of the received frame is 109 and the expected frame length
is 115. The expected frame length is set up once in set_conf() before the
A2DP streaming starts and it is never changed afterwards. This does not
sound right, because the A2DP specification (v12) explicitly states:  "The
SRC is capable of changing the bit rate dynamically by changing the bitpool
parameter without suspending." And, the frame length also depends on the
bitpool parameter. So, both the bit rate and the frame length can change
dynamically. From the code, I do not see that pulseaudio's module can adapt
the bit rate and frame length dynamically. But I might be wrong.

So, my question is: Does pulseaudio's SBC implementation support dynamically
changing bit rates and frame lengths? If so, how and where?

Thanks,
Burkhard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20100103/0a62d614/attachment.htm>


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux