From 3fca0306032486736dd575907c640a1702e8531f Mon Sep 17 00:00:00 2001 From: Sakari Bergen Date: Sun, 3 Nov 2013 21:22:00 +0200 Subject: Fix invalid silence trimmer end-of-input behavior (multiple EndOfInputs) This caused an export bug when: a) normalizing b) adding silence to end c) having more than one channel The sound was corrupted by repeating each jack frame as many times as there were channels. --- libs/audiographer/audiographer/general/silence_trimmer.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libs/audiographer') diff --git a/libs/audiographer/audiographer/general/silence_trimmer.h b/libs/audiographer/audiographer/general/silence_trimmer.h index a653bfe215..d292515eb8 100644 --- a/libs/audiographer/audiographer/general/silence_trimmer.h +++ b/libs/audiographer/audiographer/general/silence_trimmer.h @@ -130,6 +130,9 @@ class SilenceTrimmer throw Exception(*this, "process() after reacing end of input"); } in_end = c.has_flag (ProcessContext::EndOfInput); + + // If adding to end, delay end of input propagation + if (add_to_end) { c.remove_flag(ProcessContext::EndOfInput); } framecnt_t frame_index = 0; @@ -208,7 +211,8 @@ class SilenceTrimmer // Finally, if in end, add silence to end if (in_end && add_to_end) { - + c.set_flag (ProcessContext::EndOfInput); + if (debug_level (DebugVerbose)) { debug_stream () << DebugUtils::demangled_name (*this) << " adding to end" << std::endl; -- cgit v1.2.3