summaryrefslogtreecommitdiff
path: root/libs/audiographer
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2013-11-03 21:22:00 +0200
committerSakari Bergen <sakari.bergen@beatwaves.net>2013-11-03 21:22:00 +0200
commit3fca0306032486736dd575907c640a1702e8531f (patch)
tree1bebac34e0d57f2ef64c5d39761f29d7ef87ebe1 /libs/audiographer
parentf2300164d7a89c5e433d3293dfed4c1ab77f0553 (diff)
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.
Diffstat (limited to 'libs/audiographer')
-rw-r--r--libs/audiographer/audiographer/general/silence_trimmer.h6
1 files changed, 5 insertions, 1 deletions
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<T>::EndOfInput);
+
+ // If adding to end, delay end of input propagation
+ if (add_to_end) { c.remove_flag(ProcessContext<T>::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<T>::EndOfInput);
+
if (debug_level (DebugVerbose)) {
debug_stream () << DebugUtils::demangled_name (*this) <<
" adding to end" << std::endl;