[pulseaudio-discuss] [PATCH] module-jack-sink/source: Set fixed latency correctly on creation
David Henningsson
david.henningsson at canonical.com
Mon Mar 26 02:30:19 PDT 2012
On 03/25/2012 12:59 PM, Maarten Lankhorst wrote:
> 250 ms default fixed latency won't work well for some applications like wine.
Thanks for the patch. It seems reasonable to set the sink's latency to
match jack's latency, but jack_port_get_total_latency is deprecated and
therefore causes a compiler warning.
Would it make more sense to use jack_port_get_latency_range and
pa_sink_set_latency_range? Or maybe set the fixed latency to match the
min or max value of jack's latency range?
>
> Signed-off-by: Maarten Lankhorst<m.b.lankhorst at gmail.com>
>
> ---
> diff --git a/src/modules/jack/module-jack-sink.c b/src/modules/jack/module-jack-sink.c
> index ba4ea95..4270b15 100644
> --- a/src/modules/jack/module-jack-sink.c
> +++ b/src/modules/jack/module-jack-sink.c
> @@ -296,6 +296,8 @@ int pa__init(pa_module*m) {
> unsigned i;
> const char **ports = NULL, **p;
> pa_sink_new_data data;
> + jack_nframes_t l;
> + size_t n;
>
> pa_assert(m);
>
> @@ -443,6 +445,9 @@ int pa__init(pa_module*m) {
> }
> }
>
> + l = jack_port_get_total_latency(u->client, u->port[0]);
> + n = l * pa_frame_size(&u->sink->sample_spec);
> + pa_sink_set_fixed_latency(u->sink, pa_bytes_to_usec(n,&u->sink->sample_spec));
> pa_sink_put(u->sink);
>
> if (ports)
> diff --git a/src/modules/jack/module-jack-source.c b/src/modules/jack/module-jack-source.c
> index 13109f3..a1ec9f6 100644
> --- a/src/modules/jack/module-jack-source.c
> +++ b/src/modules/jack/module-jack-source.c
> @@ -249,6 +249,8 @@ int pa__init(pa_module*m) {
> unsigned i;
> const char **ports = NULL, **p;
> pa_source_new_data data;
> + jack_nframes_t l;
> + size_t n;
>
> pa_assert(m);
>
> @@ -388,6 +390,9 @@ int pa__init(pa_module*m) {
>
> }
>
> + l = jack_port_get_total_latency(u->client, u->port[0]);
> + n = l * pa_frame_size(&u->source->sample_spec);
> + pa_source_set_fixed_latency(u->source, pa_bytes_to_usec(n,&u->source->sample_spec));
> pa_source_put(u->source);
>
> if (ports)
>
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>
--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
More information about the pulseaudio-discuss
mailing list