b4ae75f4524fd5bf55d015f860f1deaee0d81f43 |
|
04-Oct-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Decrese the default verbosity for A2DP codec info logs Bug: 64159791 Test: Manual Change-Id: Ida10f5d2aa6643df136a41891d7775e175c06570
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
81c2234305d4c84eb38f0d5a92605e3b42366f84 |
|
02-Aug-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Add A2DP_DumpCodecInfo() API The API can be used to display A2DP codec info when using |LOG_DEBUG|. Test: Code compilation Bug: 64128712 Change-Id: I04379b45f24adb7008365d38ccc8aa7f49ed4b73
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
3b8391cd47dd0ea3e399f99a888f029de8c7d8c8 |
|
12-May-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Set the RTP Header Marker bit selectively per A2DP codec Add a mechanism to set the RTP Header Marker bit per codec. Currently, the Marker bit is set only for AAC. Test: A2DP streaming, PTS AVDTP tests: TC_ACP_SRC_TRA_BTR_BV_01_C, TC_INT_SRC_SIG_SMG_BV_17_C, TC_INT_SRC_TRA_BTR_BV_01_C Bug: 37723283 Change-Id: I9b8e77d44c750746c169df9628d5539ad2406b92
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
c95e5dd827275ca33d84ee8084b8511c0dd9892e |
|
11-May-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Removed A2DP_GetTrackBitsPerSample() API because it is not needed The A2DP_GetTrackBitsPerSample() API was replaced in the past by A2dpCodecConfig::getAudioBitsPerSample() . * Removed A2DP_GetTrackBitsPerSample() and related codec-specific APIs: - A2DP_GetTrackBitsPerSampleSbc - A2DP_GetTrackBitsPerSampleAac - A2DP_GetTrackBitsPerSampleAptx - A2DP_GetTrackBitsPerSampleAptxHd - A2DP_GetTrackBitsPerSampleLdac NOTE: The removed A2DP_GetTrackBitsPerSampleLdac implementation had a bug: a2dp_ldac_caps.bits_per_sample -> ldac_cie.bits_per_sample This bug itself was uncovered when switching to clang-3960126 - A2DP_VendorGetTrackBitsPerSample() * Replaced few leftover usages of A2DP_GetTrackBitsPerSample() A2dpCodecConfig::getAudioBitsPerSample() * Updated the unit tests Test: Code compilation, unit tests, A2DP streaming Bug: 37752547 Change-Id: I7feeda0f32922b8ef888b157673e3e2ade98b179
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
302113d4e44f06e90f90a5903e33ae830edb58a3 |
|
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
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
dfc02a91a19b2968506140655180b2491ac46a48 |
|
15-Mar-2017 |
fen wang <fen.wang@sonymobile.com> |
Integration of LDAC Adaptive Bit Rate mechanism LDAC ABR controls LDAC encoder bit rate based on A2DP transmit queue length. It can be used if the LDAC ABR library is installed on the device: libldacBT_abr.so Test: manual Bug: 35381097 Change-Id: Idcc2fabe86acaf441f5a71f5d2bb66ad29252cdb
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
a6ba5aca4e8c1a200b8cc29fb60d390a7196416a |
|
01-Feb-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Add a mechanism to configure the default A2DP codec priorities Previously, the relative codec priorities were hard-codec internally. The new mechanism uses the following configurable resources in packages/apps/Bluetooth/res/values/config.xml to re-assign the default codec priorities per device, or to explicitly disable a codec. - a2dp_source_codec_priority_sbc - a2dp_source_codec_priority_aac - a2dp_source_codec_priority_aptx - a2dp_source_codec_priority_aptx_hd - a2dp_source_codec_priority_ldac Those values are assigned on startup. Also, they can be changed per device by using an overlay: device/<VENDOR>/<DEVICE>/overlay/packages/apps/Bluetooth/res/values/config.xml Test: Manually streaming to a headset Change-Id: I5312299aea4a11c92fbe999d521adb39346b9866
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
494e53e904e8aecc28178fda5856071776b2caf0 |
|
26-Jan-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Update the A2DP Codec Config API Previously, the JNI upcall would contain only the current codec config. In the new API, the upcall contains: 1. The current codec config 2. The list of codecs containing the local codecs capabilities 3. The list of codecs containing the selectable codecs capabilities. This list is the intersection of the local codecs capabilities and the capabilities of the paired device. Also, updated the codec backend to accomodate the above changes: * Update all selectable codecs inside bta_av_co_audio_set_codec() * Changed getCodecConfigAndCapabilities() to return current codec config, local codecs capabilities, and selectable codecs capabilities. * Updated each codec to compute and store a copy of the selectable capabilities, and the local capabilities. * Updated tA2DP_SBC_CIE to include new field bits_per_sample (for consistency with the rest of the codecs). * Replaced usage of codec_priority of 0 with BTAV_A2DP_CODEC_PRIORITY_DEFAULT * If there is user codec (re)config call, we always send an upcall to inform the Java layer about the most recent codec info. Thus, the caller would always know whether the request succeeded or failed. Test: A2DP streaming with headsets and switching the codecs Change-Id: Ie7a5cd5c2ab01bb8676032be05bc2ad03baa1e3f
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
f8e2670d12ee55ec48635ef55a86ecfa643cc761 |
|
11-Jan-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Removed the feeding_init call from tA2DP_ENCODER_INTERFACE The feeding_init call is not used anymore - it has been superseded by the newer A2dpCodecs.setCodecAudioConfig() mechanism. Also, moved aptx_init_framing_params() and aptx_hd_init_framing_params() calls to the corresponding encoder_update functions. Test: A2DP streaming to Bluetooth headsets Change-Id: I52f42b4701d04fe2ddb8f115bb9cd57fe38e2b38
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
d43a901c579ef08a1b5d7cfe18f759aad0a14f1a |
|
07-Jan-2017 |
Pavlin Radoslavov <pavlin@google.com> |
Renamed the aptX and aptX-HD shared libraries * The names of the expected aptX and aptX-HD shared libraries are updated to reflect better their purpose: - aptX: libaptX.so -> libaptX_encoder.so - aptX-HD: libaptXHD.so -> libaptXHD_encoder.so Also: * Add a missing upcall with the codec info the first time the codec is selected internally * Minor cleanup Bug: 30958229 Test: A2DP streaming to aptX/aptX-HD headsets Change-Id: Ib2bfc83823190fb7a057353eb47cd71c5b4d5a3a
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|
3a3ec66a1bb7f5c99b17239021d6d184a3abd4ee |
|
25-Oct-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Integration of the aptX and aptX-HD codecs for A2DP source Each of the codecs can be used if the corresponding encoding shared library is installed on the device: - aptX: libaptX.so - aptX-HD: libaptXHD.so Test: A2DP streaming to aptX and aptX-HD headsets Bug: 30958229 Change-Id: I1ca36da653721576f5a5b6bdac186b9ea2790c85
/system/bt/stack/a2dp/a2dp_vendor_aptx.cc
|