adjust max_rewind/max_request whenever the latency changes
authorLennart Poettering <lennart@poettering.net>
Mon, 6 Apr 2009 22:47:55 +0000 (00:47 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 6 Apr 2009 22:47:55 +0000 (00:47 +0200)
src/modules/module-null-sink.c

index 129bc1c..9254242 100644 (file)
@@ -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) {