summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Chini <georg@chini.tk>2021-01-01 00:29:28 +0100
committerPulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org>2021-11-03 18:37:31 +0000
commit129a59a2f0100e8981330f5873632254387a99ca (patch)
treed28e851fcf8073e4f76bba5880ad6a1b880dc766
parentd55fde2fed663e46409dd2e3b4af279d97190f73 (diff)
virtual sources: Include resampler delay in latency reports
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/120>
-rw-r--r--src/modules/echo-cancel/module-echo-cancel.c3
-rw-r--r--src/modules/module-remap-source.c3
-rw-r--r--src/modules/module-virtual-source.c3
3 files changed, 9 insertions, 0 deletions
diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c
index f239492ce..20fe46481 100644
--- a/src/modules/echo-cancel/module-echo-cancel.c
+++ b/src/modules/echo-cancel/module-echo-cancel.c
@@ -422,6 +422,9 @@ static int source_process_msg_cb(pa_msgobject *o, int code, void *data, int64_t
/* and the buffering we do on the source */
pa_bytes_to_usec(u->source_output_blocksize, &u->source_output->source->sample_spec);
+ /* Add resampler delay */
+ *((int64_t*) data) += pa_resampler_get_delay_usec(u->source_output->thread_info.resampler);
+
return 0;
case PA_SOURCE_MESSAGE_SET_VOLUME_SYNCED:
diff --git a/src/modules/module-remap-source.c b/src/modules/module-remap-source.c
index 281f41375..993700b59 100644
--- a/src/modules/module-remap-source.c
+++ b/src/modules/module-remap-source.c
@@ -101,6 +101,9 @@ static int source_process_msg_cb(pa_msgobject *o, int code, void *data, int64_t
/* Add the latency internal to our source output on top */
pa_bytes_to_usec(pa_memblockq_get_length(u->source_output->thread_info.delay_memblockq), &u->source_output->source->sample_spec);
+ /* Add resampler delay */
+ *((int64_t*) data) += pa_resampler_get_delay_usec(u->source_output->thread_info.resampler);
+
return 0;
}
diff --git a/src/modules/module-virtual-source.c b/src/modules/module-virtual-source.c
index 22566b0bb..8dd7fc90f 100644
--- a/src/modules/module-virtual-source.c
+++ b/src/modules/module-virtual-source.c
@@ -177,6 +177,9 @@ static int source_process_msg_cb(pa_msgobject *o, int code, void *data, int64_t
/* FIXME, no idea what I am doing here */
pa_bytes_to_usec(pa_memblockq_get_length(u->source_output->thread_info.delay_memblockq), &u->source_output->source->sample_spec);
+ /* Add resampler delay */
+ *((int64_t*) data) += pa_resampler_get_delay_usec(u->source_output->thread_info.resampler);
+
return 0;
}