stream-state: filter duplicate cork events 04/10504/1
authorJanos Kovacs <jankovac503@gmail.com>
Mon, 30 Sep 2013 22:20:47 +0000 (01:20 +0300)
committerJaska Uimonen <jaska.uimonen@helsinki.fi>
Wed, 2 Oct 2013 20:52:10 +0000 (23:52 +0300)
Change-Id: I3928f2170cad6c11ba59fac7c029e99bf347eac5

murphy/stream-state.c

index 5dbef7f..5453448 100644 (file)
@@ -154,19 +154,23 @@ static void sink_input_block(pa_sink_input *sinp, pa_bool_t block)
             sinp->flags |= flag_mask;
     }
 
-    pa_sink_input_cork_internal(sinp, block);
+    if (( sinp->corked_internal && !block) ||
+        (!sinp->corked_internal &&  block)  )
+    {
+        pa_sink_input_cork_internal(sinp, block);
 
-    if (sinp->send_event) {
-        if (block)
-            event = PA_STREAM_EVENT_REQUEST_CORK;
-        else
-            event = PA_STREAM_EVENT_REQUEST_UNCORK;
+        if (sinp->send_event) {
+            if (block)
+                event = PA_STREAM_EVENT_REQUEST_CORK;
+            else
+                event = PA_STREAM_EVENT_REQUEST_UNCORK;
 
-        pl = pa_proplist_new();
+            pl = pa_proplist_new();
 
-        sinp->send_event(sinp, event, pl);
+            sinp->send_event(sinp, event, pl);
 
-        pa_proplist_free(pl);
+            pa_proplist_free(pl);
+        }
     }
 }