fix stream corking: ignore pa_sink_input() when we are in corked state
authorLennart Poettering <lennart@poettering.net>
Mon, 24 Sep 2007 17:14:00 +0000 (17:14 +0000)
committerLennart Poettering <lennart@poettering.net>
Mon, 24 Sep 2007 17:14:00 +0000 (17:14 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1896 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/sink-input.c

index 9360bee..4a9ba6a 100644 (file)
@@ -397,7 +397,7 @@ int pa_sink_input_peek(pa_sink_input *i, size_t length, pa_memchunk *chunk, pa_c
     pa_assert(chunk);
     pa_assert(volume);
 
-    if (!i->peek || !i->drop || i->thread_info.state == PA_SINK_INPUT_UNLINKED || i->thread_info.state == PA_SINK_INPUT_CORKED)
+    if (!i->peek || !i->drop || i->thread_info.state == PA_SINK_INPUT_CORKED)
         goto finish;
 
     pa_assert(i->thread_info.state == PA_SINK_INPUT_RUNNING || i->thread_info.state == PA_SINK_INPUT_DRAINED);
@@ -518,6 +518,9 @@ void pa_sink_input_drop(pa_sink_input *i, size_t length) {
     pa_assert(pa_frame_aligned(length, &i->sink->sample_spec));
     pa_assert(length > 0);
 
+    if (!i->peek || !i->drop || i->thread_info.state == PA_SINK_INPUT_CORKED)
+        return;
+
     if (i->thread_info.move_silence > 0) {
 
         if (i->thread_info.move_silence >= length) {