From 95eb35c7f50f49ec66528a68aca2ac1dc615aeea Mon Sep 17 00:00:00 2001 From: Janos Kovacs Date: Tue, 1 Oct 2013 01:20:47 +0300 Subject: [PATCH] stream-state: filter duplicate cork events Change-Id: I3928f2170cad6c11ba59fac7c029e99bf347eac5 --- murphy/stream-state.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/murphy/stream-state.c b/murphy/stream-state.c index 5dbef7f..5453448 100644 --- a/murphy/stream-state.c +++ b/murphy/stream-state.c @@ -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); + } } } -- 2.7.4