ladspa/remap: make sure we process all requested rewinds unconditionally

In some situations a rewind request travelling downstream might be
optimized away on its way and an upstream rewind processing might never
come back. Hence, call _process_rewind() before each _render()just to
make sure we processed them all.
This commit is contained in:
Lennart Poettering 2009-08-07 23:58:45 +02:00
parent 51b3899348
commit 7d4916379b
4 changed files with 14 additions and 5 deletions

View file

@ -592,15 +592,15 @@ void pa_source_process_rewind(pa_source *s, size_t nbytes) {
pa_source_assert_ref(s);
pa_assert(PA_SOURCE_IS_LINKED(s->thread_info.state));
if (s->thread_info.state == PA_SOURCE_SUSPENDED)
if (nbytes <= 0)
return;
if (nbytes <= 0)
if (s->thread_info.state == PA_SOURCE_SUSPENDED)
return;
pa_log_debug("Processing rewind...");
while ((o = pa_hashmap_iterate(s->thread_info.outputs, &state, NULL))) {
PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) {
pa_source_output_assert_ref(o);
pa_source_output_process_rewind(o, nbytes);
}