Decode one metadata block or audio frame.
This version instructs the decoder to decode a either a single metadata
block or a single frame and stop, unless the callbacks return a fatal
error or the read callback returns
\c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM.
As the decoder needs more input it will call the read callback.
Depending on what was decoded, the metadata or write callback will be
called with the decoded metadata block or audio frame.
Unless there is a fatal read error or end of stream, this function
will return once one whole frame is decoded. In other words, if the
stream is not synchronized or points to a corrupt frame header, the
decoder will continue to try and resync until it gets to a valid
frame, then decode one frame, then return. If the decoder points to
a frame whose frame CRC in the frame footer does not match the
computed frame CRC, this function will issue a
FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH error to the
error callback, and return, having decoded one complete, although
corrupt, frame. (Such corrupted frames are sent as silence of the
correct length to the write callback.)
\param decoder An initialized decoder instance.
\assert
\code decoder != NULL \endcode
\retval FLAC__bool
\c false if any fatal read, write, or memory allocation error
occurred (meaning decoding must stop), else \c true; for more
information about the decoder, check the decoder state with
FLAC__stream_decoder_get_state().
Decode one metadata block or audio frame. This version instructs the decoder to decode a either a single metadata block or a single frame and stop, unless the callbacks return a fatal error or the read callback returns \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM.
As the decoder needs more input it will call the read callback. Depending on what was decoded, the metadata or write callback will be called with the decoded metadata block or audio frame.
Unless there is a fatal read error or end of stream, this function will return once one whole frame is decoded. In other words, if the stream is not synchronized or points to a corrupt frame header, the decoder will continue to try and resync until it gets to a valid frame, then decode one frame, then return. If the decoder points to a frame whose frame CRC in the frame footer does not match the computed frame CRC, this function will issue a FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH error to the error callback, and return, having decoded one complete, although corrupt, frame. (Such corrupted frames are sent as silence of the correct length to the write callback.)
\param decoder An initialized decoder instance. \assert \code decoder != NULL \endcode \retval FLAC__bool \c false if any fatal read, write, or memory allocation error occurred (meaning decoding must stop), else \c true; for more information about the decoder, check the decoder state with FLAC__stream_decoder_get_state().