From 61ab760c927ac18901af6d8912baab35d43c63ab Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Thu, 12 May 2022 16:08:11 +0200
Subject: [PATCH] tracer: add the ability to specify the timestamp

---
 include/vlc_tracer.h | 6 +++++-
 src/libvlccore.sym   | 2 +-
 src/misc/tracer.c    | 6 +++---
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/include/vlc_tracer.h b/include/vlc_tracer.h
index 2c0b3396790a..8f89146e8e11 100644
--- a/include/vlc_tracer.h
+++ b/include/vlc_tracer.h
@@ -89,8 +89,12 @@ struct vlc_tracer_operations
  * Value has to be defined with one of the type defined
  * in the \ref vlc_tracer_entry union.
  * \param tracer tracer emitting the traces
+ * \param ts timestamp of the current trace
  */
-VLC_API void vlc_tracer_Trace(struct vlc_tracer *tracer, ...);
+VLC_API void vlc_tracer_TraceWithTs(struct vlc_tracer *tracer, vlc_tick_t ts, ...);
+
+#define vlc_tracer_Trace(tracer, ...) \
+    vlc_tracer_TraceWithTs(tracer, vlc_tick_now(), __VA_ARGS__)
 
 /**
  * \defgroup tracer Tracer
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index 57df8b431953..1ef9c7e55694 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -284,7 +284,7 @@ vlc_memstream_printf
 vlc_Log
 vlc_LogSet
 vlc_vaLog
-vlc_tracer_Trace
+vlc_tracer_TraceWithTs
 vlc_LogHeaderCreate
 vlc_LogDestroy
 vlc_strerror
diff --git a/src/misc/tracer.c b/src/misc/tracer.c
index 2d3852cfbffe..79d0651678ef 100644
--- a/src/misc/tracer.c
+++ b/src/misc/tracer.c
@@ -46,7 +46,7 @@ struct vlc_tracer_module {
     void *opaque;
 };
 
-void vlc_tracer_Trace(struct vlc_tracer *tracer, ...)
+void vlc_tracer_TraceWithTs(struct vlc_tracer *tracer, vlc_tick_t ts, ...)
 {
     assert(tracer->ops->trace != NULL);
     struct vlc_tracer_module *module =
@@ -54,8 +54,8 @@ void vlc_tracer_Trace(struct vlc_tracer *tracer, ...)
 
     /* Pass message to the callback */
     va_list entries;
-    va_start(entries, tracer);
-    tracer->ops->trace(module->opaque, vlc_tick_now(), entries);
+    va_start(entries, ts);
+    tracer->ops->trace(module->opaque, ts, entries);
     va_end(entries);
 }
 
-- 
GitLab