]> code.delx.au - pulseaudio/commitdiff
pacat: use fully automatic buffer sizes if possible
authorLennart Poettering <lennart@poettering.net>
Wed, 16 Sep 2009 23:22:48 +0000 (01:22 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 16 Sep 2009 23:22:48 +0000 (01:22 +0200)
src/utils/pacat.c

index 781bfa3306633947e1d8031c2e88e6eae76ed7cb..5f29ba39995b7f12be6b29b582610cd1352fd192 100644 (file)
@@ -430,14 +430,18 @@ static void context_state_callback(pa_context *c, void *userdata) {
             pa_stream_set_event_callback(stream, stream_event_callback, NULL);
             pa_stream_set_buffer_attr_callback(stream, stream_buffer_attr_callback, NULL);
 
+            pa_zero(buffer_attr);
+            buffer_attr.maxlength = (uint32_t) -1;
+            buffer_attr.prebuf = (uint32_t) -1;
+
             if (latency > 0) {
-                memset(&buffer_attr, 0, sizeof(buffer_attr));
-                buffer_attr.tlength = (uint32_t) latency;
+                buffer_attr.fragsize = buffer_attr.tlength = (uint32_t) latency;
                 buffer_attr.minreq = (uint32_t) process_time;
-                buffer_attr.maxlength = (uint32_t) -1;
-                buffer_attr.prebuf = (uint32_t) -1;
-                buffer_attr.fragsize = (uint32_t) latency;
                 flags |= PA_STREAM_ADJUST_LATENCY;
+            } else {
+                buffer_attr.tlength = (uint32_t) -1;
+                buffer_attr.minreq = (uint32_t) -1;
+                buffer_attr.fragsize = (uint32_t) -1;
             }
 
             if (mode == PLAYBACK) {