Re: [Bluez-devel] audio problems with a2play

Marcel Holtmann
2004-11-23T21:52:15Z

Hi Brad,

> > I also saw that you were modifying the way a2play packs its frame though
> > that still doesn't look right to me. Maybe we should talk about our
> > interpretation of the specs in this case.
>
> yes, exactly. Marcel got it to work by tracing the (non-spec!) traffic
> produced by using his headset's transmitter. We don't have the luxury of
> capturing the traffic but we should try to follow the spec as well as we
> can.

we should follow the specification, but I also like to get my Aiptek
phone working without the sender device. So we already need the first
workaround/quirk for the not finished A2DP support ;)

The only good thing is that GCT puts in a device id SDP record with the
id value of 1310:0100 (from the USB vendor ist). I tried to look this up
at www.linux-usb.org/usb.ids if 1310 is assigned to GCT, but haven't
found anything so far.

So what we must do is read the device id SDP record (PNP Information,
service class 0x1200) and check for the product and vendor ids and if
they match set a flag to use their specific media payload header.

> > Next thing should be media payload header from A2DP which is 1 octet in
> > length and correct, too.
> >
> > Then there should be an SBC frame as per A2DP p. 53 just like my code
> > produces them. That should start with 0x9C which I can't see anywhere in
> > the a2play output.
>
> we just send one sbc frame then? I was assuming that but not sure.

With the GCT stuff you can break the frame at any point you like. For me
this looks like the RFCOMM stream. However my device doesn't work if the
frame size is too short, so we should put as much frames into the L2CAP
payload as the MTU allows.

>>From the other trace of the Impulsesoft stack I saw that they put 5 SBC
frames into one AVDTP media packet. They use 0x22 0x16 0x33 0x33 for the
media specific settings of the SBC, while my Aiptek headphone sets them
to 0x22 0x46 0x02 0xfa.

> Are you saying we should put 0x9c in the stream or it should be in the
> stream already? The SBC-specific stuff is definitely where my
> understanding ends.

No, this must come from the SBC encoder.

Regards

Marcel