From a4a8a8cc63b8d44d8dbca86910b5d07b8e2fa092 Mon Sep 17 00:00:00 2001 From: Chris Moeller Date: Tue, 5 Nov 2013 16:17:24 -0800 Subject: [PATCH] HighlyComplete will now stop filling its internal buffer when it has emulated enough to reach the tagged end of the track --- Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm b/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm index c43aad662..e470e7788 100644 --- a/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm +++ b/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm @@ -1171,8 +1171,11 @@ static int twosf_info(void * context, const char * name, const char * value) - (BOOL)fillBuffer { - unsigned long free_space = silence_test_buffer.free_space() / 2; - while ( free_space ) + long frames_left = totalFrames - framesRead - silence_test_buffer.data_available() / 2; + long free_space = silence_test_buffer.free_space() / 2; + if ( free_space > frames_left ) + free_space = frames_left; + while ( free_space > 0 ) { unsigned long samples_to_write = 0; int16_t * buf = silence_test_buffer.get_write_ptr( samples_to_write );