summaryrefslogtreecommitdiffstats
path: root/polyp/protocol-esound.c
diff options
context:
space:
mode:
Diffstat (limited to 'polyp/protocol-esound.c')
-rw-r--r--polyp/protocol-esound.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/polyp/protocol-esound.c b/polyp/protocol-esound.c
index 103b17a3..8ec48a34 100644
--- a/polyp/protocol-esound.c
+++ b/polyp/protocol-esound.c
@@ -167,10 +167,16 @@ static void connection_free(struct connection *c) {
pa_client_free(c->client);
- if (c->sink_input)
- pa_sink_input_free(c->sink_input);
- if (c->source_output)
- pa_source_output_free(c->source_output);
+ if (c->sink_input) {
+ pa_sink_input_disconnect(c->sink_input);
+ pa_sink_input_unref(c->sink_input);
+ }
+
+ if (c->source_output) {
+ pa_source_output_disconnect(c->source_output);
+ pa_source_output_unref(c->source_output);
+ }
+
if (c->input_memblockq)
pa_memblockq_free(c->input_memblockq);
if (c->output_memblockq)