]> code.delx.au - pulseaudio/commitdiff
Make sure we don't drop any data on the client side
authorLennart Poettering <lennart@poettering.net>
Sat, 10 Jan 2009 02:33:27 +0000 (03:33 +0100)
committerLennart Poettering <lennart@poettering.net>
Sat, 10 Jan 2009 02:33:27 +0000 (03:33 +0100)
src/utils/pacat.c

index ea736e237b060737a5a93d7b53efaa766bbc326b..b1e0d1f47e2f4d316c14c6b145efdad1d7d7d6b3 100644 (file)
@@ -139,17 +139,16 @@ static void stream_read_callback(pa_stream *s, size_t length, void *userdata) {
     assert(length > 0);
 
     if (buffer) {
-        fprintf(stderr, _("Buffer overrun, dropping incoming data\n"));
-        if (pa_stream_drop(s) < 0) {
-            fprintf(stderr, _("pa_stream_drop() failed: %s\n"), pa_strerror(pa_context_errno(context)));
-            quit(1);
-        }
-        return;
+        buffer = pa_xrealloc(buffer, buffer_length + length);
+        memcpy((uint8_t*) buffer + buffer_length, data, length);
+        buffer_length += length;
+    } else {
+        buffer = pa_xmalloc(length);
+        memcpy(buffer, data, length);
+        buffer_length = length;
+        buffer_index = 0;
     }
 
-    buffer = pa_xmalloc(buffer_length = length);
-    memcpy(buffer, data, length);
-    buffer_index = 0;
     pa_stream_drop(s);
 }