diff options
Diffstat (limited to 'src/modules/module-null-sink.c')
-rw-r--r-- | src/modules/module-null-sink.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c index 129bc1c3..d9bab6bd 100644 --- a/src/modules/module-null-sink.c +++ b/src/modules/module-null-sink.c @@ -119,6 +119,7 @@ static int sink_process_msg( static void sink_update_requested_latency_cb(pa_sink *s) { struct userdata *u; + size_t nbytes; pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); @@ -127,6 +128,10 @@ static void sink_update_requested_latency_cb(pa_sink *s) { if (u->block_usec == (pa_usec_t) -1) u->block_usec = s->thread_info.max_latency; + + nbytes = pa_usec_to_bytes(u->block_usec, &s->sample_spec); + pa_sink_set_max_rewind_within_thread(s, nbytes); + pa_sink_set_max_request_within_thread(s, nbytes); } static void process_rewind(struct userdata *u, pa_usec_t now) { @@ -284,7 +289,7 @@ int pa__init(pa_module*m) { pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, pa_modargs_get_value(ma, "description", "Null Output")); pa_proplist_sets(data.proplist, PA_PROP_DEVICE_CLASS, "abstract"); - u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY); + u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY); pa_sink_new_data_done(&data); if (!u->sink) { |