I am expanding the A2DP capabilities of a bluetooth device
to support AAC.
I am using an IPOD gen 4 with latest iOS6 to connect to the
bluetooth device.
I’ve captured the “media payload” packets
coming in from the AVDTP layer and expected to be as described on page 15 of
the “Bluetooth Accessory Design Guidelines for Apple Products” which
shows the following fomat:
|L2CAP:HDR| |AVDTP:HDR| |MPEG-LATM:
AudioMuxElement| |MPEG4 AAC Audio Payload|
The AudioMuxElement is not what I’d expect based on in
14496-3 (MPEG4 part 3 ) “MPEG-4 Audio transport stream”, table 1.28
which describes the AudioMuxElement(muxConfigPresent=1).
I’d expect it to first contain MuxConfiguration
information.
What I get is this: an 8 byte header with a fixed value, and
then a payloadLengthInfo( ) element (which gives the size of the audio payload)
and then the payload.
For example:
|FC 00 00 B0 90 80 03 00| | 07 | 20 66 00 01 98 00 0e|
The design Guideline document indicates “the
AudioMuxElement …is defined in Section 1.7.3 Table 1.32 in ISO/IEC
13818-3:2005” So maybe the AudioMuxElement does not match
MPEG4? I have been unable to find a 2005 version of in ISO/IEC 13818-3, (the
latest version I can find is from 1998) to see what is in Table 1.32 of its
section 1.7.3. I at first thought maybe there was a typo in the document
name.
Can anyone explain the fields of that 8 byte header?
For now I’ve just been skipping over it and getting the MPEG4 data
payload and it seems to work, but I want to understand that 8 byte header in
case it contains pertintant info.
thanks
-Shawn