diff options
-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; } |