[pulseaudio-discuss] [RFC v2 3/3] bluetooth: Add skipped bytes statistic message
Frédéric Danis
frederic.danis at collabora.com
Mon May 27 09:14:52 UTC 2019
This allows to get the total amount of bytes skipped since connected to
the device.
pacmd send-message /bluetooth/bluez_sink.<device address> get-skipped-bytes
---
src/modules/bluetooth/module-bluez5-device.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
index 3ab4be508..4abc55fd1 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -31,6 +31,7 @@
#include <pulse/timeval.h>
#include <pulse/utf8.h>
#include <pulse/util.h>
+#include <pulse/message-params.h>
#include <pulsecore/core-error.h>
#include <pulsecore/core-rtclock.h>
@@ -133,6 +134,7 @@ struct userdata {
pa_usec_t started_at;
pa_smoother *read_smoother;
pa_memchunk write_memchunk;
+ uint64_t skipped_bytes;
const pa_a2dp_codec *a2dp_codec;
bool a2dp_codec_config_pending;
@@ -1425,6 +1427,8 @@ static void thread_func(void *userdata) {
pa_log_debug("Skipping %llu us (= %llu bytes) in audio stream",
(unsigned long long) skip_usec,
(unsigned long long) skip_bytes);
+ u->skipped_bytes += skip_bytes;
+ pa_log_debug("Total bytes skipped = %llu", (unsigned long long) u->skipped_bytes);
while (skip_bytes > 0) {
size_t bytes_to_render;
@@ -1550,6 +1554,11 @@ static int bluetooth_handler(const char *object_path, const char *message, char
return res;
}
return -PA_ERR_NOTSUPPORTED;
+ } else if (pa_streq(message, "get-skipped-bytes")) {
+ pa_message_params *param = pa_message_params_new();
+ pa_message_params_write_uint64(param, u->skipped_bytes);
+ *response = pa_message_params_to_string_free(param);
+ return PA_OK;
}
return -PA_ERR_NOTIMPLEMENTED;
--
2.18.0
More information about the pulseaudio-discuss
mailing list