[mad-dev] Detecting the last frame

Rob Leslie rob at mars.org
Mon Sep 28 12:41:19 PDT 2009


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
rob at mars.org




More information about the mad-dev mailing list