mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
update to new rewinding logic
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2380 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
9d7fde5fe3
commit
8afbdc375c
4 changed files with 8 additions and 17 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue