diff --git a/Audio/Chain/ConverterNode.m b/Audio/Chain/ConverterNode.m index 4c6bb5e3f..eddf818c8 100644 --- a/Audio/Chain/ConverterNode.m +++ b/Audio/Chain/ConverterNode.m @@ -400,7 +400,10 @@ static void extrapolate(float *buffer, size_t channels, size_t frameSize, size_t { char writeBuf[CHUNK_SIZE]; - while ([self shouldContinue] == YES) //Need to watch EOS somehow.... + // Removed endOfStream check from here, since we want to be able to flush the converter + // when the end of stream is reached. Convert function instead processes what it can, + // and returns 0 samples when it has nothing more to process at the end of stream. + while ([self shouldContinue] == YES) { int amountConverted = [self convert:writeBuf amount:CHUNK_SIZE]; if (!amountConverted)