OS X Chooses SBC audio Codec over AAC for Bluetooth A2DP Connection

Originator:jeff
Number:rdar://19312818 Date Originated:2014-12-19
Status:Closed as Duplicate of 18202172 (Open) Resolved:
Product:OS X Product Version:OS X 10.10.1 (14B25)
Classification: Reproducible:
 
Attachments: https://jeffvautin.com/wp-content/uploads/openradar/radar19312818OSXChoosesSBCOverAAC.zip

Summary:
I was observing bluetooth connections from an iPhone and a MacBook Pro to a 2015 Corvette (Premium Audio). The Corvette advertises both SBC and AAC capabilities:

[Dec 17 16:06:29.175]  [AVDTP RECEIVE]  Get Cap.: Accept-Response (0x02)
               Get Cap.: Accept-Response (0x02)
               Msg Type: Accept-Response (0x02)
               Transaction Label: 0x00
               Packet Type: Single (0x0)
               Size: 12 (0x0C)
               Media Transport
               SBC Encoding:
               	Sample Frequency: 44.1kHz 48kHz
               	Channel Mode: Mono Dual Stereo Joint
               	Blocks: 4 8 12 16
               	Subbands: 4 8
               	Allocation: SNR Loudness
               	Min Bitpool: 2 (0x02)
               	Max Bitpool: 81 (0x51)

[Dec 17 16:06:29.440]  [AVDTP RECEIVE]  Get Cap.: Accept-Response (0x02)
               Get Cap.: Accept-Response (0x02)
               Msg Type: Accept-Response (0x02)
               Transaction Label: 0x03
               Packet Type: Single (0x0)
               Size: 14 (0x0E)
               Media Transport
               MPEG24Codec (AAC)
               	Object Type: MPEG-2 LC MPEG-4 LC
               	Sampling Frequency: 44.1kHz 48kHz
               	Channels: Mono Stereo
               	Variable Bit Rate: YES
               	Bit Rate: 128

The iPhone chooses to use the AAC codec:

2014-12-17T16:29:40.896 A2DPClient.cpp:626        MediaConfig          Info       A2DP       MTU for device E0:75:0A:CE:DE:F2 "Chevrolet MyLink" has been changed to 660
2014-12-17T16:29:40.896 A2dpStreamConfig.cpp:636  SetAacDataRate       Info       A2DP       AAC frame len: 645 bytes, num frames: 1, bitrate: 256 kb/s, rtp intr: 23219, rtpFrameLen 645, latency 92879

While the MacBook Pro chooses to use the SBC codec:

[Dec 17 16:06:29.446]  [AVDTP SEND]  Set Config.: Signal (0x03)
               Set Config.: Signal (0x03)
               Msg Type: Signal (0x00)
               Transaction Label: 0x03
               Packet Type: Single (0x0)
               Size: 14 (0x0E)
               Endpoint: 1
               Media Transport
               SBC Encoding:
               	Sample Frequency: 44.1kHz
               	Channel Mode: Stereo
               	Blocks: 16
               	Subbands: 8
               	Allocation: Loudness
               	Min Bitpool: 2 (0x02)
               	Max Bitpool: 64 (0x40)

Since the AAC codec provides higher fidelity, the MacBook Pro should also be choosing to use the AAC codec to provide audio to the Corvette.

Steps to Reproduce:
1. Pair a MacBook Pro with a 2015 Corvette (or any other Bluetooth A2DP sink capable of using AAC codec).
2. Observe codec selected by OS X (option-click Bluetooth Menubar icon and Create Diagnostics Report on Desktop…).

Expected Results:
OS X should select the AAC codec for the Bluetooth A2DP connection.

Actual Results:
OS X selects the inferior SBC codec.

Version:
OS X 10.10.1 (14B25)

Notes:
I would be happy to provide more information about this over the phone. I've attached both the Mac and iOS Bluetooth Diagnostics logs the above excerpts came from so that you can see the communications in context:
BluetoothReporter_2014-12-17_16.08.18.zip - Mac diagnostic logs
Logs-2014.12.17-16.29.56.zip - iPhone 6 diagnostic logs

Configuration:
Hardware Overview:

  Model Name:	MacBook Pro
  Model Identifier:	MacBookPro8,2
  Processor Name:	Intel Core i7
  Processor Speed:	2.5 GHz
  Number of Processors:	1
  Total Number of Cores:	4
  L2 Cache (per Core):	256 KB
  L3 Cache:	8 MB
  Memory:	16 GB
  Boot ROM Version:	MBP81.0047.B27
  SMC Version (system):	1.69f3
  Serial Number (system):	C02H7074DV7P
  Hardware UUID:	100164E7-D5FA-5D4D-9AC3-9A6415C7E715
  Sudden Motion Sensor:
  State:	Enabled

System Software Overview:

  System Version:	OS X 10.10.1 (14B25)
  Kernel Version:	Darwin 14.0.0
  Boot Volume:	Macintosh HD
  Boot Mode:	Normal
  Computer Name:	usma-m158-asd
  User Name:	Jeff Vautin (jeffvautin)
  Secure Virtual Memory:	Enabled
  Time since boot:	1 day5:21


MacBook Pro.spx - configuration file has been successfully uploaded.

Attachments:
'BluetoothReporter_2014-12-17_16.08.18.zip', 'Logs-2014.12.17-16.29.56.zip' and 'MacBook Pro.spx' were successfully uploaded.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!