From 345547853bcb0825c0afb5b2528a8f1d5339a8ea Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 8 Jan 2010 21:51:30 +0100 Subject: core: make sure we always return a valid memblock in sink_input_pop() callbacks https://bugzilla.redhat.com/show_bug.cgi?id=553607 --- src/pulsecore/protocol-esound.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/pulsecore/protocol-esound.c') diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c index 2326eb3a..a89f3275 100644 --- a/src/pulsecore/protocol-esound.c +++ b/src/pulsecore/protocol-esound.c @@ -389,6 +389,7 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void size_t l; pa_sink *sink = NULL; pa_sink_input_new_data sdata; + pa_memchunk silence; connection_assert_ref(c); pa_assert(data); @@ -435,6 +436,7 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void CHECK_VALIDITY(c->sink_input, "Failed to create sink input."); l = (size_t) ((double) pa_bytes_per_second(&ss)*PLAYBACK_BUFFER_SECONDS); + pa_sink_input_get_silence(c->sink_input, &silence); c->input_memblockq = pa_memblockq_new( 0, l, @@ -443,7 +445,8 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void (size_t) -1, l/PLAYBACK_BUFFER_FRAGMENTS, 0, - NULL); + &silence); + pa_memblock_unref(silence.memblock); pa_iochannel_socket_set_rcvbuf(c->io, l); c->sink_input->parent.process_msg = sink_input_process_msg; -- cgit