+<!-- ##### SECTION Title ##### -->
+GstRiff
+
+<!-- ##### SECTION Short_Description ##### -->
+AVI parser and encoder library
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM GstRiffReturn ##### -->
+<para>
+The various functions may return the following values:
+</para>
+
+@GST_RIFF_OK: no error
+@GST_RIFF_ENOTRIFF: no riff header found
+@GST_RIFF_EINVAL: invalied parameters given
+@GST_RIFF_ENOMEM: no memory
+
+<!-- ##### ENUM GstRiffParserState ##### -->
+<para>
+Internal state of the parser
+</para>
+
+@GST_RIFF_STATE_INITIAL:
+@GST_RIFF_STATE_HASAVIH:
+@GST_RIFF_STATE_HASSTRH:
+@GST_RIFF_STATE_HASSTRF:
+@GST_RIFF_STATE_MOVI:
+
+<!-- ##### MACRO MAKE_FOUR_CC ##### -->
+<para>
+Create a FOURCC
+</para>
+
+@a:
+@b:
+@c:
+@d:
+
+
+<!-- ##### MACRO GST_RIFF_RIFF_WAVE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_RIFF_AVI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_RIFF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_RIFX ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_LIST ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_avih ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_strd ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_strh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_strf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_vedt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_JUNK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_idx1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_fmt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TAG_data ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_LIST_movi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_LIST_hdrl ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_LIST_strl ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCC_vids ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCC_auds ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCC_pads ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCC_txts ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCC_vidc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCCH_RLE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCCH_msvc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FCCH_MSVC ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_FF00 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_01 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_02 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_03 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_04 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_05 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_06 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_07 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00pc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_01pc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00dc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00dx ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00db ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00xx ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00rt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_0021 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00iv ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_0031 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_0032 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00vc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00xm ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_01wb ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_01dc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_cram ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_CRAM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_wham ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_WHAM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_rgb ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_RGB ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_rle8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_RLE8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_rle4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_RLE4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_none ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_NONE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_pack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_PACK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_tran ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_TRAN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_ccc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_CCC ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_cyuv ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_CYUV ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_jpeg ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_JPEG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_MJPG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_mJPG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_IJPG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_rt21 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_RT21 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_iv31 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_IV31 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_iv32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_IV32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_iv41 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_IV41 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_iv50 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_IV50 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_cvid ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_CVID ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_ULTI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_ulti ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_YUV9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_YVU9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_XMPG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_xmpg ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_VDOW ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_MVI1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_v422 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_V422 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_mvi1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_MPIX ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_AURA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_DMB1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_dmb1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_BW10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_bw10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_yuy2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_YUY2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_YUV8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_WINX ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_WPY2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_m263 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_M263 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_Q1_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_SFMC ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_y41p ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_Y41P ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_yv12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_YV12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_vixl ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_VIXL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_iyuv ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_IYUV ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_i420 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_I420 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_vyuy ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_VYUY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_DIV3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_rpza ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_azpr ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_ISFT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_IDIT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_00AM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_DISP ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_ISBJ ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GST_RIFF_rec ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT gst_riff_avih ##### -->
+<para>
+
+</para>
+
+@us_frame:
+@max_bps:
+@pad_gran:
+@flags:
+@init_frames:
+@streams:
+@bufsize:
+@width:
+@height:
+@scale:
+@rate:
+@start:
+@length:
+
+<!-- ##### STRUCT gst_riff_strh ##### -->
+<para>
+
+</para>
+
+@type:
+@fcc_handler:
+@flags:
+@init_frames:
+@scale:
+@rate:
+@start:
+@length:
+@bufsize:
+@quality:
+@samplesize:
+
+<!-- ##### STRUCT gst_riff_strf_vids ##### -->
+<para>
+
+</para>
+
+@size:
+@width:
+@height:
+@planes:
+@bit_cnt:
+@compression:
+@image_size:
+@xpels_meter:
+@ypels_meter:
+@num_colors:
+@imp_colors:
+
+<!-- ##### STRUCT gst_riff_strf_auds ##### -->
+<para>
+
+</para>
+
+@format:
+@rate:
+@av_bps:
+@blockalign:
+@size:
+
+<!-- ##### STRUCT gst_riff_riff ##### -->
+<para>
+
+</para>
+
+@id:
+@size:
+@type:
+
+<!-- ##### STRUCT gst_riff_list ##### -->
+<para>
+
+</para>
+
+@id:
+@size:
+@type:
+
+<!-- ##### STRUCT gst_riff_chunk ##### -->
+<para>
+
+</para>
+
+@id:
+@size:
+
+<!-- ##### STRUCT GstRiff ##### -->
+<para>
+
+</para>
+
+@form:
+@chunks:
+@incomplete_chunk:
+@incomplete_chunk_size:
+@state:
+@curoffset:
+@nextlikely:
+@dataleft:
+@dataleft_size:
+@new_tag_found:
+@callback_data:
+
+<!-- ##### STRUCT GstRiffChunk ##### -->
+<para>
+
+</para>
+
+@offset:
+@id:
+@size:
+@form:
+@data:
+
+<!-- ##### USER_FUNCTION GstRiffCallback ##### -->
+<para>
+
+</para>
+
+@chunk:
+@data:
+
+
+<!-- ##### FUNCTION gst_riff_parser_new ##### -->
+<para>
+Create a new riff parser
+</para>
+
+@function: the function that will be called when a new chunk has been found
+@data: the data to include in the function
+@Returns: a new riff structure
+
+
+<!-- ##### FUNCTION gst_riff_parser_next_buffer ##### -->
+<para>
+Subit a new buffer to the parser
+</para>
+
+@riff: the riff parser
+@buf: a buffer
+@off: the offset of the buffer in the stream
+@Returns: one of the return values
+
+
+<!-- ##### FUNCTION gst_riff_encoder_new ##### -->
+<para>
+Create a new riff encoder
+</para>
+
+@type: the type riff stream to encode
+@Returns: a riff structure
+
+
+<!-- ##### FUNCTION gst_riff_encoder_avih ##### -->
+<para>
+Submit a new avi header to the encoder
+</para>
+
+@riff: the encoder
+@head: the header
+@size: the size of the dat in the body
+@Returns: a status
+
+
+<!-- ##### FUNCTION gst_riff_encoder_strh ##### -->
+<para>
+Submit a new stream header to the encoder
+</para>
+
+@riff: the encoder
+@fcc_type: the fourcc type
+@head: the header
+@size: the size of the body
+@Returns: a status
+
+
+<!-- ##### FUNCTION gst_riff_encoder_strf ##### -->
+<para>
+Submit a new stream form to the encoder
+</para>
+
+@riff: the encoder
+@format: the format
+@size: the size
+@Returns: a status
+
+
+<!-- ##### FUNCTION gst_riff_encoder_chunk ##### -->
+<para>
+submit a new chunk to the encoder
+</para>
+
+@riff: the encoder
+@chunk_type: the chunk type
+@chunk: the chunk
+@size: the size of the chunk data
+@Returns: a status
+
+
+<!-- ##### FUNCTION gst_riff_encoder_get_buffer ##### -->
+<para>
+Get the buffer that is currently constructed in the encoder
+</para>
+
+@riff: the encoder
+@Returns: the buffer
+
+
+<!-- ##### FUNCTION gst_riff_encoder_get_and_reset_buffer ##### -->
+<para>
+Get the buffer that is currently constructed in the encoder and clear it
+</para>
+
+@riff: the encoder
+@Returns: the buffer
+
+
+<!-- ##### FUNCTION gst_riff_fourcc_to_id ##### -->
+<para>
+Convert a fourcc to an id
+</para>
+
+@fourcc: the fourcc
+@Returns: the id value
+
+
+<!-- ##### FUNCTION gst_riff_id_to_fourcc ##### -->
+<para>
+Convert an id to a fourcc
+</para>
+
+@id: the id
+@Returns: the fourcc. You must free the data if it is no longer needed.
+
+