Don’t call ::output() [here: SilenceTrimmer::process()] with no data to process. If (position + N * period-size) % chunksize == 0; frames_left == 0 before the last call to ::output(). chunker.h:60 keeps the ProcessContext<T>::EndOfInput flag and the SilenceTrimmer will already have done ‘in_end’ processing.