diff options
| -rw-r--r-- | src/modules/module-combine.c | 2 | ||||
| -rw-r--r-- | src/modules/module-ladspa-sink.c | 6 | ||||
| -rw-r--r-- | src/pulsecore/play-memchunk.c | 6 | ||||
| -rw-r--r-- | src/pulsecore/protocol-esound.c | 5 | ||||
| -rw-r--r-- | src/pulsecore/protocol-simple.c | 6 | ||||
| -rw-r--r-- | src/pulsecore/sound-file-stream.c | 5 | 
6 files changed, 24 insertions, 6 deletions
diff --git a/src/modules/module-combine.c b/src/modules/module-combine.c index a186c899..62e62679 100644 --- a/src/modules/module-combine.c +++ b/src/modules/module-combine.c @@ -890,7 +890,7 @@ static struct output *output_new(struct userdata *u, pa_sink *sink) {              1,              0,              0, -            NULL); +            &u->sink->silence);      pa_assert_se(pa_idxset_put(u->outputs, o, NULL) == 0);      update_description(u); diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c index 994c778f..185871be 100644 --- a/src/modules/module-ladspa-sink.c +++ b/src/modules/module-ladspa-sink.c @@ -476,6 +476,7 @@ int pa__init(pa_module*m) {      unsigned long input_port, output_port, p, j, n_control;      unsigned c;      pa_bool_t *use_default = NULL; +    pa_memchunk silence;      pa_assert(m); @@ -514,7 +515,10 @@ int pa__init(pa_module*m) {      u = pa_xnew0(struct userdata, 1);      u->module = m;      m->userdata = u; -    u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL); + +    pa_silence_memchunk_get(&m->core->silence_cache, m->core->mempool, &silence, &ss, 0); +    u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, &silence); +    pa_memblock_unref(silence.memblock);      if (!(e = getenv("LADSPA_PATH")))          e = LADSPA_PATH; 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) { 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; diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c index a9f73896..fb2e5648 100644 --- a/src/pulsecore/protocol-simple.c +++ b/src/pulsecore/protocol-simple.c @@ -525,6 +525,7 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp      if (o->playback) {          pa_sink_input_new_data data; +        pa_memchunk silence;          size_t l;          pa_sink *sink; @@ -559,6 +560,7 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp          pa_sink_input_set_requested_latency(c->sink_input, DEFAULT_SINK_LATENCY);          l = (size_t) ((double) pa_bytes_per_second(&o->sample_spec)*PLAYBACK_BUFFER_SECONDS); +        pa_sink_input_get_silence(c->sink_input, &silence);          c->input_memblockq = pa_memblockq_new(                  0,                  l, @@ -567,7 +569,9 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp                  (size_t) -1,                  l/PLAYBACK_BUFFER_FRAGMENTS,                  0, -                NULL); +                &silence); +        pa_memblock_unref(silence.memblock); +          pa_iochannel_socket_set_rcvbuf(io, l);          pa_atomic_store(&c->playback.missing, (int) pa_memblockq_missing(c->input_memblockq)); diff --git a/src/pulsecore/sound-file-stream.c b/src/pulsecore/sound-file-stream.c index 53674ba1..4037dca8 100644 --- a/src/pulsecore/sound-file-stream.c +++ b/src/pulsecore/sound-file-stream.c @@ -239,6 +239,7 @@ int pa_play_file(      pa_sink_input_new_data data;      int fd;      SF_INFO sfi; +    pa_memchunk silence;      pa_assert(sink);      pa_assert(fname); @@ -320,7 +321,9 @@ int pa_play_file(      u->sink_input->state_change = sink_input_state_change_cb;      u->sink_input->userdata = u; -    u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL); +    pa_sink_input_get_silence(u->sink_input, &silence); +    u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, &silence); +    pa_memblock_unref(silence.memblock);      pa_sink_input_put(u->sink_input);  | 
