Re: Detecting the last frame

Rob Leslie <[email protected]> Mon, 28 Sep 2009 12:41:19 -0700
Newsgroups gmane.comp.audio.mad.devel
Message-ID <[email protected]>
On Sep 27, 2009, at 12:43 AM, Troy Watson wrote:
> Is there a method to detect if the frame sent to mad_synth_frame is  
> the last frame in the stream, without knowing in advance how many  
> frames the input stream has?  I am using libsamplerate and it  
> requires the last block of audio data for a stream to set an  
> end_of_input flag. Checking the EOF indicator for the input file is  
> insufficient as that only informs me when the file has been fully  
> buffered, not when the last frame has been synthesized. Any ideas or  
> suggestions?

You may need to decode the next frame before you output the previously  
synth'ed one to be absolutely sure.

Keep in mind that when mad_frame_decode() (or mad_header_decode())  
returns -1 and stream->error is MAD_ERROR_BUFLEN, and you are at EOF,  
there may be one last frame you can decode by appending  
MAD_BUFFER_GUARD zero bytes at the end of the buffer, but not  
necessarily.

-- 
Rob Leslie
[email protected]