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 /libs/audiographer | |
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.
Diffstat (limited to 'libs/audiographer')
-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; |