On Sun, 03.01.10 03:27, Burkhard Stubert (burkhard.stubert at googlemail.com) wrote: > 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? No, we don't support this right now. We probably should though. Please file a bug in the BTS so that we don't forget about this. Even better: prepare a patch ;-) Lennart -- Lennart Poettering Red Hat, Inc. lennart [at] poettering [dot] net http://0pointer.net/lennart/ GnuPG 0x1A015CC4