diff options
author | Andre Eisenbach <eisenbach@google.com> | 2016-06-29 12:46:13 -0700 |
---|---|---|
committer | Andre Eisenbach <eisenbach@google.com> | 2016-06-29 20:25:21 +0000 |
commit | ade5776f2b292c4dcb367aaf542d3e5d7956c4cd (patch) | |
tree | cb13c50067202a03b9132f31f85fcad7fc42d1df | |
parent | 290c92a3ea0197e486f894f524823e451337c2dc (diff) | |
download | bt-ade5776f2b292c4dcb367aaf542d3e5d7956c4cd.tar.gz |
Log RSSI when A2DP buffers are flushed
To add another datapoint and potentially narrow down *why* we had to
flush the buffers, add RSSI logging to keep track of signal strength
during audio drop-out events.
Change-Id: Ie52f56290951130165a9f375a898a9bacf459d55
-rw-r--r-- | btif/src/btif_media_task.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/btif/src/btif_media_task.c b/btif/src/btif_media_task.c index 08af57768..262bc53a7 100644 --- a/btif/src/btif_media_task.c +++ b/btif/src/btif_media_task.c @@ -492,6 +492,25 @@ UNUSED_ATTR static const char *dump_media_event(UINT16 event) } } +static void btm_read_rssi_cb(void *data) +{ + assert(data); + + tBTM_RSSI_RESULTS *result = (tBTM_RSSI_RESULTS*)data; + if (result->status != BTM_SUCCESS) + { + LOG_ERROR(LOG_TAG, "%s unable to read remote RSSI (status %d)", + __func__, result->status); + return; + } + + char temp_buffer[20] = {0}; + LOG_WARN(LOG_TAG, "%s device: %s, rssi: %d", __func__, + bdaddr_to_string((bt_bdaddr_t *)result->rem_bda, temp_buffer, + sizeof(temp_buffer)), + result->rssi); +} + /***************************************************************************** ** A2DP CTRL PATH *****************************************************************************/ @@ -3096,13 +3115,19 @@ static void btif_media_aa_prep_2_send(UINT8 nb_frame, uint64_t timestamp_us) APPL_TRACE_WARNING("%s() - TX queue buffer count %d/%d", __func__, fixed_queue_length(btif_media_cb.TxAaQ), MAX_OUTPUT_A2DP_FRAME_QUEUE_SZ - nb_frame); + // Keep track of drop-outs btif_media_cb.stats.tx_queue_dropouts++; btif_media_cb.stats.tx_queue_last_dropouts_us = timestamp_us; + // Flush all queued buffers... while (fixed_queue_length(btif_media_cb.TxAaQ)) { btif_media_cb.stats.tx_queue_total_dropped_messages++; osi_free(fixed_queue_try_dequeue(btif_media_cb.TxAaQ)); } + + // Request RSSI for log purposes if we had to flush buffers + bt_bdaddr_t peer_bda = btif_av_get_addr(); + BTM_ReadRSSI(peer_bda.address, btm_read_rssi_cb); } // Transcode frame |