]> code.delx.au - pulseaudio/commitdiff
core: handle suspended state in pa_sink_render_full() similar to the other render...
authorLennart Poettering <lennart@poettering.net>
Tue, 1 Sep 2009 20:18:55 +0000 (22:18 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 1 Sep 2009 20:18:55 +0000 (22:18 +0200)
src/pulsecore/sink.c

index 2362db8dc8c80241e16d21bdb463d5643a20a7d6..e1ab96dbe6ef0057572a6df47328be806d66fc14 100644 (file)
@@ -1099,7 +1099,16 @@ void pa_sink_render_full(pa_sink *s, size_t length, pa_memchunk *result) {
     pa_assert(!s->thread_info.rewind_requested);
     pa_assert(s->thread_info.rewind_nbytes == 0);
 
-    pa_assert(length > 0);
+    if (s->thread_info.state == PA_SINK_SUSPENDED) {
+        pa_silence_memchunk_get(&s->core->silence_cache,
+                                s->core->mempool,
+                                result,
+                                &s->sample_spec,
+                                length1st);
+
+        pa_sink_unref(s);
+        return;
+    }
 
     n = fill_mix_info(s, &length1st, info, MAX_MIX_CHANNELS);