From 145070779493399b3bed74c273e3268016e92998 Mon Sep 17 00:00:00 2001 From: fduncanh Date: Tue, 3 May 2022 16:51:02 -0400 Subject: [PATCH] make more audio time details available to renderer --- renderers/audio_renderer.h | 4 +++- renderers/audio_renderer_gstreamer.c | 5 +++-- uxplay.cpp | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/renderers/audio_renderer.h b/renderers/audio_renderer.h index 084c502..b879a16 100644 --- a/renderers/audio_renderer.h +++ b/renderers/audio_renderer.h @@ -26,12 +26,14 @@ extern "C" { #include #include +#include #include "../lib/raop_ntp.h" void audio_renderer_init(logger_t *logger, const char* audiosink); void audio_renderer_start(unsigned char* compression_type); void audio_renderer_stop(); -void audio_renderer_render_buffer(raop_ntp_t *ntp, unsigned char* data, int data_len, uint64_t pts); +void audio_renderer_render_buffer(raop_ntp_t *ntp, unsigned char* data, int data_len, + uint64_t ntp_time, uint64_t rtp_time, bool have_synced); void audio_renderer_set_volume(float volume); void audio_renderer_flush(); void audio_renderer_destroy(); diff --git a/renderers/audio_renderer_gstreamer.c b/renderers/audio_renderer_gstreamer.c index ab3f673..4522d1d 100644 --- a/renderers/audio_renderer_gstreamer.c +++ b/renderers/audio_renderer_gstreamer.c @@ -177,7 +177,8 @@ void audio_renderer_start(unsigned char *ct) { } -void audio_renderer_render_buffer(raop_ntp_t *ntp, unsigned char* data, int data_len, uint64_t pts) { +void audio_renderer_render_buffer(raop_ntp_t *ntp, unsigned char* data, int data_len, uint64_t ntp_time, + uint64_t rtp_time, bool rtp_and_ntp_have_synced) { GstBuffer *buffer; bool valid; if (data_len == 0 || renderer == NULL) return; @@ -191,7 +192,7 @@ void audio_renderer_render_buffer(raop_ntp_t *ntp, unsigned char* data, int data buffer = gst_buffer_new_and_alloc(data_len); assert(buffer != NULL); - GST_BUFFER_PTS(buffer) = (GstClockTime) pts; + GST_BUFFER_PTS(buffer) = (GstClockTime) ntp_time; gst_buffer_fill(buffer, 0, data, data_len); switch (renderer->ct){ case 8: /*AAC-ELD*/ diff --git a/uxplay.cpp b/uxplay.cpp index abc795f..480dd7c 100644 --- a/uxplay.cpp +++ b/uxplay.cpp @@ -811,7 +811,7 @@ extern "C" void audio_process (void *cls, raop_ntp_t *ntp, audio_decode_struct * dump_audio_to_file(data->data, data->data_len, (data->data)[0] & 0xf0); } if (use_audio) { - audio_renderer_render_buffer(ntp, data->data, data->data_len, data->ntp_time); + audio_renderer_render_buffer(ntp, data->data, data->data_len, data->ntp_time, data->rtp_time, data->have_synced); } }