diff options
author | Georg Chini <georg@chini.tk> | 2021-01-01 00:29:28 +0100 |
---|---|---|
committer | PulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org> | 2021-11-03 18:37:31 +0000 |
commit | 129a59a2f0100e8981330f5873632254387a99ca (patch) | |
tree | d28e851fcf8073e4f76bba5880ad6a1b880dc766 | |
parent | d55fde2fed663e46409dd2e3b4af279d97190f73 (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.c | 3 | ||||
-rw-r--r-- | src/modules/module-remap-source.c | 3 | ||||
-rw-r--r-- | src/modules/module-virtual-source.c | 3 |
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; } |