#include <libdirac_decoder/dirac_parser.h>\n
Initialise the decodern
decoder_handle = dirac_decoder_init();
do
{
dirac_decoder_state_t state = dirac_parse (decoder);
switch (state)
{
case STATE_BUFFER:
read more data.
Pass data to the decoder.
dirac_buffer (decoder_handle, data_start, data_end)
break;
case STATE_SEQUENCE:
handle start of sequence.
The decoder returns the sequence parameters in the
seq_params member of the decoder handle.
Allocate space for the frame data buffers and pass
this to the decoder.
dirac_set_buf (decoder_handle, buf, NULL);
break;
case STATE_SEQUENCE_END:
Deallocate frame data buffers
break;
case STATE_PICTURE_AVAIL:
Handle picture data.
The decoder sets the fbuf member in the decoder
handle to the frame decoded.
break;
case STATE_INVALID:
Unrecoverable error. Stop all processing
break;
}
} while (data available && decoder state != STATE_INVALID
Free the decoder resources
dirac_decoder_close(decoder_handle)