]> code.delx.au - pulseaudio/commitdiff
bluetooth: don't call pa_sink_render with 0 bytes request
authorMarc-André Lureau <marc-andre.lureau@nokia.com>
Mon, 6 Jul 2009 14:50:51 +0000 (17:50 +0300)
committerLennart Poettering <lennart@poettering.net>
Sat, 15 Aug 2009 00:42:56 +0000 (02:42 +0200)
src/modules/bluetooth/module-bluetooth-device.c

index 93b14a1203232f249389658713f06f57d99aa4da..d98318540ec18220a4f37c0223d531fa3e33031e 100644 (file)
@@ -1319,18 +1319,21 @@ static void thread_func(void *userdata) {
                         if (u->write_index > 0 && audio_to_send > MAX_PLAYBACK_CATCH_UP_USEC) {
                             pa_usec_t skip_usec;
                             uint64_t skip_bytes;
-                            pa_memchunk tmp;
 
                             skip_usec = audio_to_send - MAX_PLAYBACK_CATCH_UP_USEC;
                             skip_bytes = pa_usec_to_bytes(skip_usec, &u->sample_spec);
 
-                            pa_log_warn("Skipping %llu us (= %llu bytes) in audio stream",
-                                        (unsigned long long) skip_usec,
-                                        (unsigned long long) skip_bytes);
+                            if (skip_bytes > 0) {
+                                pa_memchunk tmp;
 
-                            pa_sink_render_full(u->sink, skip_bytes, &tmp);
-                            pa_memblock_unref(tmp.memblock);
-                            u->write_index += skip_bytes;
+                                pa_log_warn("Skipping %llu us (= %llu bytes) in audio stream",
+                                            (unsigned long long) skip_usec,
+                                            (unsigned long long) skip_bytes);
+
+                                pa_sink_render_full(u->sink, skip_bytes, &tmp);
+                                pa_memblock_unref(tmp.memblock);
+                                u->write_index += skip_bytes;
+                            }
                         }
 
                         do_write = 1;