From 010c049db267870138ac6cd0996d4fadaa401a7b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 13 Apr 2006 18:27:35 +0000 Subject: include in-flux resampled chunk in latency calculations of playback streams git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@705 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/polypcore/protocol-native.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/polypcore/protocol-native.c b/src/polypcore/protocol-native.c index 2aedd390..3f1d5ca2 100644 --- a/src/polypcore/protocol-native.c +++ b/src/polypcore/protocol-native.c @@ -1045,6 +1045,7 @@ static void command_get_playback_latency(PA_GCC_UNUSED pa_pdispatch *pd, PA_GCC_ struct playback_stream *s; struct timeval tv, now; uint32_t idx; + pa_usec_t latency; assert(c && t); if (pa_tagstruct_getu32(t, &idx) < 0 || @@ -1060,7 +1061,12 @@ static void command_get_playback_latency(PA_GCC_UNUSED pa_pdispatch *pd, PA_GCC_ CHECK_VALIDITY(c->pstream, s->type == PLAYBACK_STREAM, tag, PA_ERR_NOENTITY); reply = reply_new(tag); - pa_tagstruct_put_usec(reply, pa_sink_get_latency(s->sink_input->sink)); + + latency = pa_sink_get_latency(s->sink_input->sink); + if (s->sink_input->resampled_chunk.memblock) + latency += pa_bytes_to_usec(s->sink_input->resampled_chunk.length, &s->sink_input->sample_spec); + pa_tagstruct_put_usec(reply, latency); + pa_tagstruct_put_usec(reply, 0); pa_tagstruct_put_boolean(reply, pa_memblockq_is_readable(s->memblockq)); pa_tagstruct_put_timeval(reply, &tv); -- cgit