Unlike pa_sink_set_port(), which calls pa_sink_set_latency_offset() to update the latency offset of the sink to match that of its newly set port, pa_source_set_port() did not do so. This patch adds the appropriate call to pa_source_set_latency_offset() in pa_source_set_port() to fix this. --- src/pulsecore/source.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index f4b96ab..9c5d6e9 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -2634,6 +2634,8 @@ int pa_source_set_port(pa_source *s, const char *name, bool save) { s->active_port = port; s->save_port = save; + pa_source_set_latency_offset(s, s->active_port->latency_offset); + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_PORT_CHANGED], s); return 0; -- 2.5.0