7cff5f55bf30f305291c0827482f03f0b52fb990 |
|
28-Jul-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Add interoperability mechanism to restrict the AVDTP MTU for AAC codec Also, add an interoperability entry for devices that are known to have AAC-related issues. Test: A2DP streaming to Headsets Bug: 63725151 Change-Id: Ic9b6640da44ebc28bfa63a19a87f0543d69bc576 (cherry picked from commit b866da0bc1254103146912077bcb49128963dee7)
/system/bt/stack/a2dp/a2dp_aac_encoder.cc
|
9434886ffbb5ce552d1172d98743323fa34e81f9 |
|
19-Apr-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Fix/update the computation of the total dropped packets for LDAC and AAC Also: * Print the "LDAC transmission bitrate (Kbps)" * Print the "LDAC adaptive bit rate encode quality mode index" when the LDAC quality mode is ABR A2DP LDAC State: ... LDAC quality mode : ABR LDAC transmission bitrate (Kbps) : 990 LDAC saved transmit queue length : 0 LDAC adaptive bit rate encode quality mode index : 0 Test: A2DP streaming to headsets that support LDAC Bug: 37287785 Change-Id: I83b22090b087eb8a1e49d1853468b7dbbf9d9ad3 (cherry picked from commit 648ea508c95ade2d8cb8b2928c70ae123fab8334)
/system/bt/stack/a2dp/a2dp_aac_encoder.cc
|
67ae84fb7f01d8458bfc1dcb506f32e7d9350d17 |
|
07-Apr-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Add A2DP codec-specific information to dumpsys output Now we print the following information: * Current codec name * Info for each supported codec: - Priority - Encoder interval (ms) - Codec Config: Sampling rate, Bits per sample, Channel mode (MONO/STEREO) - Selectable codec configuration - Codec's local capability - Packet counts (expected/dropped) - PCM read counts (expected/actual) - PCM read bytes (expected/actual) * LDAC codec-specific info: - LDAC quality mode: HIGH/MID/LOW/ABR - LDAC saved transmit queue length [used in ABR mode] * SBC codec-specific info: - Frames counts (expected/dropped) Sample of the new format is below: --- A2DP Codecs State: Current Codec: LDAC A2DP LDAC State: Priority: 1000000 Encoder interval (ms): 20 Config: Rate=96000 Bits=32 Mode=STEREO Selectable: Rate=44100|48000|88200|96000 Bits=16|24|32 Mode=MONO|STEREO Local capability: Rate=44100|48000|88200|96000 Bits=16|24|32 Mode=MONO|STEREO Packet counts (expected/dropped) : 596 / 161 PCM read counts (expected/actual) : 2488 / 2488 PCM read bytes (expected/actual) : 2547712 / 2547712 LDAC quality mode : ABR LDAC saved transmit queue length : 0 A2DP aptX-HD State: Priority: 4001 Encoder interval (ms): 0 Config: Invalid Selectable: Invalid Local capability: Rate=44100|48000 Bits=24 Mode=STEREO Packet counts (expected/dropped) : 0 / 0 PCM read counts (expected/actual) : 0 / 0 PCM read bytes (expected/actual) : 0 / 0 A2DP aptX State: Priority: 3001 Encoder interval (ms): 0 Config: Rate=44100 Bits=16 Mode=STEREO Selectable: Rate=44100|48000 Bits=16 Mode=STEREO Local capability: Rate=44100|48000 Bits=16 Mode=STEREO Packet counts (expected/dropped) : 0 / 0 PCM read counts (expected/actual) : 0 / 0 PCM read bytes (expected/actual) : 0 / 0 A2DP AAC State: Priority: 2001 Encoder interval (ms): 20 Config: Rate=44100 Bits=16 Mode=STEREO Selectable: Rate=44100|48000 Bits=16 Mode=STEREO Local capability: Rate=44100|48000|88200|96000 Bits=16 Mode=STEREO Packet counts (expected/dropped) : 0 / 0 PCM read counts (expected/actual) : 0 / 0 PCM read bytes (expected/actual) : 0 / 0 A2DP SBC State: Priority: 1001 Encoder interval (ms): 20 Config: Rate=44100 Bits=16 Mode=STEREO Selectable: Rate=44100 Bits=16 Mode=STEREO Local capability: Rate=44100 Bits=16 Mode=STEREO Packet counts (expected/dropped) : 580 / 0 PCM read counts (expected/actual) : 2900 / 2900 PCM read bytes (expected/actual) : 1484800 / 1484800 Frames counts (expected/dropped) : 3724 / 0 --- Bug: 36567128 Test: Stream A2DP and "adb shell dumpsys bluetooth_manager" Change-Id: Idd86005b842a4e569b7df91b8bbaf0632ed7f7c9 (cherry picked from commit 302113d4e44f06e90f90a5903e33ae830edb58a3)
/system/bt/stack/a2dp/a2dp_aac_encoder.cc
|
1ba312d994f30b27f6dccd75c437e7b63dbebf23 |
|
23-Feb-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Set the AAC audioMuxVersion to "2" This change is needed, because there are Sink devices that expect a fixed latmBufferFullness value. Bug: 35715579 Test: A2DP streaming to various devices Change-Id: Ia27490920cda273cee15bfd7e643b85a5c5e428d
/system/bt/stack/a2dp/a2dp_aac_encoder.cc
|
07ceaa497006b51e463f82565e602210a6731275 |
|
23-Feb-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Update the AAC bitrate settings Use AACENC_PEAK_BITRATE to limit the maximum bitrate as limited by the MTU, and use AACENC_BITRATE to set the encoder bitrate. Previously, both were set to the same value. That was disabling the AAC bitreservoir, and eventually affecting the audio quality. Bug: 35715570 Test: A2DP streaming to various devices Change-Id: I6adac4889f9b2d7509182df8961ddfada02ee8ac
/system/bt/stack/a2dp/a2dp_aac_encoder.cc
|
3b8f12614fd2a97332104230cb98a4c13bda93c7 |
|
09-Feb-2017 |
Kenmochi, Chisato <Chisato.Kenmochi@sony.com> |
Fix AAC bitrate computation and add missing parameters * Compute the AAC codec bitrate based on the MTU and the AAC object type such that the AAC frames are not fragmented. The spec recommendation is to avoid fragmentation, and some sink devices cannot process fragmented frames. * Setup/assign AACENC_PEAK_BITRATE as the peak bitrate to make sure we never go over the MTU frame size. * Add missing AAC parameter setup for AACENC_AUDIOMUXVER and AACENC_SIGNALING_MODE * Add a fix for selecting the bitrate if the sink device reports capability with zero bitrate - for such devices we negotiate our bitrate. For the actual AAC codec bitrate we still compute it based on the MTU and the AAC object type. Test: Tested with numerous AAC sink devices Bug: 34953385 Change-Id: I9ca6353b0e1ee107f1242803de4e82d568a3394b
/system/bt/stack/a2dp/a2dp_aac_encoder.cc
|
d5f4960b425ac84cc7a9fd699f39c06869ce2666 |
|
04-Jan-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Integration of the AAC codec for A2DP source Also: - Implemented data fragmentation inside bta_av_data_path() that is RTP compatible. - Do not use the codec_type when composing the RTP payload type per RFC 3016, Section 4.2. That value doesn't have actual meaning in the context of the Bluetooth supported codecs, and is ambiguous: all vendor codecs map to the same value 0xFF. - Updated support function A2DP_BitsSet() so it works for up to 64-bit integers. - Updated a log message inside l2c_data_write() to print packet length and peer MTU on error. Test: A2DP streaming to AAC headsets Bug: 30958229 Change-Id: I1b530f1c5c495b8231fd68bed788d4567096683d
/system/bt/stack/a2dp/a2dp_aac_encoder.cc
|