summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-05-07 01:38:16 +0000
committerLennart Poettering <lennart@poettering.net>2008-05-07 01:38:16 +0000
commit8afbdc375c23c21d484df456d22e982a8e26d85b (patch)
tree9f528c1545c701dc6f50f9533c3aaacc4e558474
parent9d7fde5fe33aeebf2b0047f63359d4b051c9579c (diff)
update to new rewinding logic
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2380 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r--src/modules/module-ladspa-sink.c7
-rw-r--r--src/modules/module-remap-sink.c7
-rw-r--r--src/pulsecore/protocol-native.c4
-rw-r--r--src/pulsecore/sound-file-stream.c7
4 files changed, 8 insertions, 17 deletions
diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c
index be509d73..664d73e9 100644
--- a/src/modules/module-ladspa-sink.c
+++ b/src/modules/module-ladspa-sink.c
@@ -146,10 +146,7 @@ static void sink_request_rewind(pa_sink *s) {
pa_assert_se(u = s->userdata);
/* Just hand this one over to the master sink */
- pa_sink_input_request_rewind(
- u->sink_input,
- s->thread_info.rewind_nbytes + pa_memblockq_get_length(u->memblockq),
- FALSE, FALSE);
+ pa_sink_input_request_rewind(u->sink_input, s->thread_info.rewind_nbytes + pa_memblockq_get_length(u->memblockq), TRUE, FALSE);
}
/* Called from I/O thread context */
@@ -334,7 +331,7 @@ static void sink_input_state_change_cb(pa_sink_input *i, pa_sink_input_state_t s
if (PA_SINK_INPUT_IS_LINKED(state) &&
i->thread_info.state == PA_SINK_INPUT_INIT) {
pa_log_debug("Requesting rewind due to state change.");
- pa_sink_input_request_rewind(i, 0, TRUE, TRUE);
+ pa_sink_input_request_rewind(i, 0, FALSE, TRUE);
}
}
diff --git a/src/modules/module-remap-sink.c b/src/modules/module-remap-sink.c
index c2adf2cb..985afbc8 100644
--- a/src/modules/module-remap-sink.c
+++ b/src/modules/module-remap-sink.c
@@ -119,10 +119,7 @@ static void sink_request_rewind(pa_sink *s) {
pa_sink_assert_ref(s);
pa_assert_se(u = s->userdata);
- pa_sink_input_request_rewind(
- u->sink_input,
- s->thread_info.rewind_nbytes,
- FALSE, FALSE);
+ pa_sink_input_request_rewind(u->sink_input, s->thread_info.rewind_nbytes, TRUE, FALSE);
}
/* Called from I/O thread context */
@@ -251,7 +248,7 @@ static void sink_input_state_change_cb(pa_sink_input *i, pa_sink_input_state_t s
if (PA_SINK_INPUT_IS_LINKED(state) &&
i->thread_info.state == PA_SINK_INPUT_INIT) {
pa_log_debug("Requesting rewind due to state change.");
- pa_sink_input_request_rewind(i, 0, TRUE, TRUE);
+ pa_sink_input_request_rewind(i, 0, FALSE, TRUE);
}
}
diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c
index d6e5602e..7eeefb84 100644
--- a/src/pulsecore/protocol-native.c
+++ b/src/pulsecore/protocol-native.c
@@ -1116,7 +1116,7 @@ static void handle_seek(playback_stream *s, int64_t indexw) {
pa_log_debug("Requesting rewind due to end of underrun.");
pa_sink_input_request_rewind(s->sink_input,
s->sink_input->thread_info.underrun_for == (size_t) -1 ? 0 : s->sink_input->thread_info.underrun_for,
- TRUE, TRUE);
+ FALSE, TRUE);
}
} else {
@@ -1129,7 +1129,7 @@ static void handle_seek(playback_stream *s, int64_t indexw) {
* let's have it usk us again */
pa_log_debug("Requesting rewind due to rewrite.");
- pa_sink_input_request_rewind(s->sink_input, indexr - indexw, FALSE, FALSE);
+ pa_sink_input_request_rewind(s->sink_input, indexr - indexw, TRUE, FALSE);
}
}
diff --git a/src/pulsecore/sound-file-stream.c b/src/pulsecore/sound-file-stream.c
index 918313f8..e209676f 100644
--- a/src/pulsecore/sound-file-stream.c
+++ b/src/pulsecore/sound-file-stream.c
@@ -3,7 +3,7 @@
/***
This file is part of PulseAudio.
- Copyright 2004-2006 Lennart Poettering
+ Copyright 2004-2008 Lennart Poettering
PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
@@ -245,7 +245,6 @@ int pa_play_file(
pa_sample_spec ss;
pa_sink_input_new_data data;
int fd;
- pa_memchunk silence;
pa_assert(sink);
pa_assert(fname);
@@ -347,9 +346,7 @@ int pa_play_file(
u->sink_input->state_change = sink_input_state_change_cb;
u->sink_input->userdata = u;
- pa_sink_input_get_silence(u->sink_input, &silence);
- u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&u->sink_input->sample_spec), 1, 1, 0, &silence);
- pa_memblock_unref(silence.memblock);
+ u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL);
pa_sink_input_put(u->sink_input);