The on_the_fly_snapshot variable contains the amount of bytes that has been sent from the source IO thread to the main thread, but not yet pushed to the stream memblockq. The data is in the stream format, but the bytes-to-usec conversion used the source format, which caused random latency reporting errors. BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=81075 --- src/pulsecore/protocol-native.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c index 266b676de..d5d032950 100644 --- a/src/pulsecore/protocol-native.c +++ b/src/pulsecore/protocol-native.c @@ -2922,7 +2922,7 @@ static void command_get_record_latency(pa_pdispatch *pd, uint32_t command, uint3 pa_tagstruct_put_usec(reply, s->current_monitor_latency); pa_tagstruct_put_usec(reply, s->current_source_latency + - pa_bytes_to_usec(s->on_the_fly_snapshot, &s->source_output->source->sample_spec)); + pa_bytes_to_usec(s->on_the_fly_snapshot, &s->source_output->sample_spec)); pa_tagstruct_put_boolean(reply, pa_source_get_state(s->source_output->source) == PA_SOURCE_RUNNING && pa_source_output_get_state(s->source_output) == PA_SOURCE_OUTPUT_RUNNING); -- 2.13.2