diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2013-11-03 21:22:00 +0200 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2013-11-03 21:22:00 +0200 |
commit | 3fca0306032486736dd575907c640a1702e8531f (patch) | |
tree | 1bebac34e0d57f2ef64c5d39761f29d7ef87ebe1 | |
parent | f2300164d7a89c5e433d3293dfed4c1ab77f0553 (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.
-rw-r--r-- | libs/audiographer/audiographer/general/silence_trimmer.h | 6 |
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; |