summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/play-memchunk.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-01-08 21:51:30 +0100
committerColin Guthrie <cguthrie@mandriva.org>2010-02-09 22:29:38 +0000
commit345547853bcb0825c0afb5b2528a8f1d5339a8ea (patch)
treee59a2032ac562f60d419a1095f9b19fb432d8f05 /src/pulsecore/play-memchunk.c
parent699233fb47d133f6ea1e36e8354a386c23608d5a (diff)
core: make sure we always return a valid memblock in sink_input_pop() callbacks
https://bugzilla.redhat.com/show_bug.cgi?id=553607
Diffstat (limited to 'src/pulsecore/play-memchunk.c')
-rw-r--r--src/pulsecore/play-memchunk.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pulsecore/play-memchunk.c b/src/pulsecore/play-memchunk.c
index f127d7a4..1a3bd5b8 100644
--- a/src/pulsecore/play-memchunk.c
+++ b/src/pulsecore/play-memchunk.c
@@ -47,12 +47,16 @@ int pa_play_memchunk(
pa_memblockq *q;
int r;
+ pa_memchunk silence;
pa_assert(sink);
pa_assert(ss);
pa_assert(chunk);
- q = pa_memblockq_new(0, chunk->length, 0, pa_frame_size(ss), 1, 1, 0, NULL);
+ pa_silence_memchunk_get(&sink->core->silence_cache, sink->core->mempool, &silence, ss, 0);
+ q = pa_memblockq_new(0, chunk->length, 0, pa_frame_size(ss), 1, 1, 0, &silence);
+ pa_memblock_unref(silence.memblock);
+
pa_assert_se(pa_memblockq_push(q, chunk) >= 0);
if ((r = pa_play_memblockq(sink, ss, map, q, volume, p, sink_input_index)) < 0) {