On Wed, 2012-10-10 at 09:17 +0200, David Henningsson wrote: > According to the patch author, Karl Hegbloom: > "The assertion is incorrectly testing for '==' when logically it > should test for '<='." > > BugLink: https://bugs.launchpad.net/bugs/689915 > Signed-off-by: David Henningsson <david.hennings...@canonical.com> > --- > > This is a patch I found attached to a bug in Ubuntu. I don't know > much about bluetooth, and the error was reported against something > around 0.9.22. But I'm sending it here, hoping that one of our > bluetooth people can review and say whether this is correct or not. > > src/modules/bluetooth/module-bluetooth-device.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/modules/bluetooth/module-bluetooth-device.c > b/src/modules/bluetooth/module-bluetooth-device.c > index e3ec6ae..06c783d 100644 > --- a/src/modules/bluetooth/module-bluetooth-device.c > +++ b/src/modules/bluetooth/module-bluetooth-device.c > @@ -999,9 +999,9 @@ static int a2dp_process_push(struct userdata *u) { > a2dp->frame_length = sbc_get_frame_length(&a2dp->sbc); > > pa_assert_fp((size_t) decoded <= to_decode); > - pa_assert_fp((size_t) decoded == a2dp->frame_length); > + pa_assert_fp((size_t) decoded <= a2dp->frame_length); > > - pa_assert_fp((size_t) written == a2dp->codesize); > + pa_assert_fp((size_t) written <= a2dp->codesize); > > p = (const uint8_t*) p + decoded; > to_decode -= decoded;
I'm no SBC expert either, but I had a look at sbc_decode() implementation, and to me it looks like at least "decoded == a2dp->frame_length" should hold. Extrapolating from that, "written == a2dp->codesize" probably should hold too. And it makes sense: sbc_decode() is supposed to decode one frame, and I think one frame will always have encoded size of a2dp->frame_length and decoded size of a2dp->codesize. -- Tanu -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to pulseaudio in Ubuntu. https://bugs.launchpad.net/bugs/689915 Title: pulseaudio aborts with assertion decoded == a2dp->frame_length in function a2dp_process_push() Status in “pulseaudio” package in Ubuntu: New Bug description: Binary package hint: pulseaudio See also ticket: http://pulseaudio.org/ticket/636 Steps to reproduce: 1. start pulseaudio daemon 2. issue a bluez AudioSource?.Connect() dbus call, or use blueman to connect the laptop as audio source 3. daemon aborts with Assertion '(size_t) decoded == a2dp->frame_length' failed at modules/bluetooth/module-bluetooth-device.c:1361, function a2dp_process_push(). Aborting. I have the problem with as source OSX Snow Leopard, and target Ubuntu Linux Lucid Source bitpool settings: 40 Pulseaudio version: pulseaudio 0.9.21-63-gd3efa-dirty My first suggestion would be to update the bluetooth module, from git. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/689915/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp