]> code.delx.au - pulseaudio/commitdiff
virtual-surround-sink: Fix setting max_request and max_rewind.
authorTanu Kaskinen <tanuk@iki.fi>
Wed, 22 Aug 2012 06:00:25 +0000 (09:00 +0300)
committerTanu Kaskinen <tanuk@iki.fi>
Tue, 30 Oct 2012 14:28:48 +0000 (16:28 +0200)
The sink has different frame size than the sink input, so
the max_request and max_rewind values of the sink input need
to be converted when setting the sink max_request and
max_rewind values.

The conversion is already done correctly in
sink_input_update_max_request_cb() and
sink_input_update_max_rewind_cb().

src/modules/module-virtual-surround-sink.c

index e5c5dc136d55ccb7375585b479e4d242103b9368..4915278300731bb586fe8bdea40216e0052845e8 100644 (file)
@@ -382,11 +382,11 @@ static void sink_input_attach_cb(pa_sink_input *i) {
 
     pa_sink_set_fixed_latency_within_thread(u->sink, i->sink->thread_info.fixed_latency);
 
-    pa_sink_set_max_request_within_thread(u->sink, pa_sink_input_get_max_request(i));
+    pa_sink_set_max_request_within_thread(u->sink, pa_sink_input_get_max_request(i) * u->sink_fs / u->fs);
 
     /* FIXME: Too small max_rewind:
      * https://bugs.freedesktop.org/show_bug.cgi?id=53709 */
-    pa_sink_set_max_rewind_within_thread(u->sink, pa_sink_input_get_max_rewind(i));
+    pa_sink_set_max_rewind_within_thread(u->sink, pa_sink_input_get_max_rewind(i) * u->sink_fs / u->fs);
 
     pa_sink_attach_within_thread(u->sink);
 }