gstriff

Name

gstriff -- 

Synopsis


#include <libs/riff/gstriff.h>


enum        GstRiffReturn;
enum        GstRiffParserState;
#define     MAKE_FOUR_CC                    (a,b,c,d)
#define     GST_RIFF_RIFF_WAVE
#define     GST_RIFF_RIFF_AVI
#define     GST_RIFF_TAG_RIFF
#define     GST_RIFF_TAG_RIFX
#define     GST_RIFF_TAG_LIST
#define     GST_RIFF_TAG_avih
#define     GST_RIFF_TAG_strd
#define     GST_RIFF_TAG_strh
#define     GST_RIFF_TAG_strf
#define     GST_RIFF_TAG_vedt
#define     GST_RIFF_TAG_JUNK
#define     GST_RIFF_TAG_idx1
#define     GST_RIFF_TAG_fmt
#define     GST_RIFF_TAG_data
#define     GST_RIFF_LIST_movi
#define     GST_RIFF_LIST_hdrl
#define     GST_RIFF_LIST_strl
#define     GST_RIFF_FCC_vids
#define     GST_RIFF_FCC_auds
#define     GST_RIFF_FCC_pads
#define     GST_RIFF_FCC_txts
#define     GST_RIFF_FCC_vidc
#define     GST_RIFF_FCCH_RLE
#define     GST_RIFF_FCCH_msvc
#define     GST_RIFF_FCCH_MSVC
#define     GST_RIFF_FF00
#define     GST_RIFF_00
#define     GST_RIFF_01
#define     GST_RIFF_02
#define     GST_RIFF_03
#define     GST_RIFF_04
#define     GST_RIFF_05
#define     GST_RIFF_06
#define     GST_RIFF_07
#define     GST_RIFF_00pc
#define     GST_RIFF_01pc
#define     GST_RIFF_00dc
#define     GST_RIFF_00dx
#define     GST_RIFF_00db
#define     GST_RIFF_00xx
#define     GST_RIFF_00id
#define     GST_RIFF_00rt
#define     GST_RIFF_0021
#define     GST_RIFF_00iv
#define     GST_RIFF_0031
#define     GST_RIFF_0032
#define     GST_RIFF_00vc
#define     GST_RIFF_00xm
#define     GST_RIFF_01wb
#define     GST_RIFF_01dc
#define     GST_RIFF_cram
#define     GST_RIFF_CRAM
#define     GST_RIFF_wham
#define     GST_RIFF_WHAM
#define     GST_RIFF_rgb
#define     GST_RIFF_RGB
#define     GST_RIFF_rle8
#define     GST_RIFF_RLE8
#define     GST_RIFF_rle4
#define     GST_RIFF_RLE4
#define     GST_RIFF_none
#define     GST_RIFF_NONE
#define     GST_RIFF_pack
#define     GST_RIFF_PACK
#define     GST_RIFF_tran
#define     GST_RIFF_TRAN
#define     GST_RIFF_ccc
#define     GST_RIFF_CCC
#define     GST_RIFF_cyuv
#define     GST_RIFF_CYUV
#define     GST_RIFF_jpeg
#define     GST_RIFF_JPEG
#define     GST_RIFF_MJPG
#define     GST_RIFF_mJPG
#define     GST_RIFF_IJPG
#define     GST_RIFF_rt21
#define     GST_RIFF_RT21
#define     GST_RIFF_iv31
#define     GST_RIFF_IV31
#define     GST_RIFF_iv32
#define     GST_RIFF_IV32
#define     GST_RIFF_iv41
#define     GST_RIFF_IV41
#define     GST_RIFF_iv50
#define     GST_RIFF_IV50
#define     GST_RIFF_cvid
#define     GST_RIFF_CVID
#define     GST_RIFF_ULTI
#define     GST_RIFF_ulti
#define     GST_RIFF_YUV9
#define     GST_RIFF_YVU9
#define     GST_RIFF_XMPG
#define     GST_RIFF_xmpg
#define     GST_RIFF_VDOW
#define     GST_RIFF_MVI1
#define     GST_RIFF_v422
#define     GST_RIFF_V422
#define     GST_RIFF_mvi1
#define     GST_RIFF_MPIX
#define     GST_RIFF_AURA
#define     GST_RIFF_DMB1
#define     GST_RIFF_dmb1
#define     GST_RIFF_BW10
#define     GST_RIFF_bw10
#define     GST_RIFF_yuy2
#define     GST_RIFF_YUY2
#define     GST_RIFF_YUV8
#define     GST_RIFF_WINX
#define     GST_RIFF_WPY2
#define     GST_RIFF_m263
#define     GST_RIFF_M263
#define     GST_RIFF_Q1_0
#define     GST_RIFF_SFMC
#define     GST_RIFF_y41p
#define     GST_RIFF_Y41P
#define     GST_RIFF_yv12
#define     GST_RIFF_YV12
#define     GST_RIFF_vixl
#define     GST_RIFF_VIXL
#define     GST_RIFF_iyuv
#define     GST_RIFF_IYUV
#define     GST_RIFF_i420
#define     GST_RIFF_I420
#define     GST_RIFF_vyuy
#define     GST_RIFF_VYUY
#define     GST_RIFF_DIV3
#define     GST_RIFF_rpza
#define     GST_RIFF_azpr
#define     GST_RIFF_ISFT
#define     GST_RIFF_IDIT
#define     GST_RIFF_00AM
#define     GST_RIFF_DISP
#define     GST_RIFF_ISBJ
#define     GST_RIFF_rec
struct      gst_riff_avih;
struct      gst_riff_strh;
struct      gst_riff_strf_vids;
struct      gst_riff_strf_auds;
struct      gst_riff_riff;
struct      gst_riff_list;
struct      gst_riff_chunk;
struct      gst_riff_index_entry;
struct      GstRiff;
struct      GstRiffChunk;
void        (*GstRiffCallback)              (GstRiffChunk *chunk,
                                             gpointer data);
GstRiff*    gst_riff_parser_new             (GstRiffCallback function,
                                             gpointer data);
GstRiffReturn gst_riff_parser_next_buffer   (GstRiff *riff,
                                             GstBuffer *buf,
                                             gulong off);
void        gst_riff_parser_resync          (GstRiff *riff,
                                             gulong offset);
GstRiff*    gst_riff_encoder_new            (guint32 type);
GstRiffReturn gst_riff_encoder_avih         (GstRiff *riff,
                                             gst_riff_avih *head,
                                             gulong size);
GstRiffReturn gst_riff_encoder_strh         (GstRiff *riff,
                                             guint32 fcc_type,
                                             gst_riff_strh *head,
                                             gulong size);
GstRiffReturn gst_riff_encoder_strf         (GstRiff *riff,
                                             void *format,
                                             gulong size);
GstRiffReturn gst_riff_encoder_chunk        (GstRiff *riff,
                                             guint32 chunk_type,
                                             void *chunk,
                                             gulong size);
GstBuffer*  gst_riff_encoder_get_buffer     (GstRiff *riff);
GstBuffer*  gst_riff_encoder_get_and_reset_buffer
                                            (GstRiff *riff);
gulong      gst_riff_fourcc_to_id           (gchar *fourcc);
gchar*      gst_riff_id_to_fourcc           (gulong id);

Description

Details

enum GstRiffReturn

typedef enum {
  GST_RIFF_OK 	    =  0,		
  GST_RIFF_ENOTRIFF = -1,
  GST_RIFF_EINVAL   = -2,
  GST_RIFF_ENOMEM   = -3
} GstRiffReturn;


enum GstRiffParserState

typedef enum {
  GST_RIFF_STATE_INITIAL  	= 0,
  GST_RIFF_STATE_HASAVIH  	= 1,
  GST_RIFF_STATE_HASSTRH  	= 2,
  GST_RIFF_STATE_HASSTRF  	= 3,
  GST_RIFF_STATE_MOVI	  	= 4
} GstRiffParserState;


MAKE_FOUR_CC()

#define     MAKE_FOUR_CC(a,b,c,d)

a : 
b : 
c : 
d : 


GST_RIFF_RIFF_WAVE

#define GST_RIFF_RIFF_WAVE MAKE_FOUR_CC('W','A','V','E')


GST_RIFF_RIFF_AVI

#define GST_RIFF_RIFF_AVI  MAKE_FOUR_CC('A','V','I',' ')


GST_RIFF_TAG_RIFF

#define GST_RIFF_TAG_RIFF MAKE_FOUR_CC('R','I','F','F')


GST_RIFF_TAG_RIFX

#define GST_RIFF_TAG_RIFX MAKE_FOUR_CC('R','I','F','X')


GST_RIFF_TAG_LIST

#define GST_RIFF_TAG_LIST MAKE_FOUR_CC('L','I','S','T')


GST_RIFF_TAG_avih

#define GST_RIFF_TAG_avih MAKE_FOUR_CC('a','v','i','h')


GST_RIFF_TAG_strd

#define GST_RIFF_TAG_strd MAKE_FOUR_CC('s','t','r','d')


GST_RIFF_TAG_strh

#define GST_RIFF_TAG_strh MAKE_FOUR_CC('s','t','r','h')


GST_RIFF_TAG_strf

#define GST_RIFF_TAG_strf MAKE_FOUR_CC('s','t','r','f')


GST_RIFF_TAG_vedt

#define GST_RIFF_TAG_vedt MAKE_FOUR_CC('v','e','d','t')


GST_RIFF_TAG_JUNK

#define GST_RIFF_TAG_JUNK MAKE_FOUR_CC('J','U','N','K')


GST_RIFF_TAG_idx1

#define GST_RIFF_TAG_idx1 MAKE_FOUR_CC('i','d','x','1')


GST_RIFF_TAG_fmt

#define GST_RIFF_TAG_fmt  MAKE_FOUR_CC('f','m','t',' ')


GST_RIFF_TAG_data

#define GST_RIFF_TAG_data MAKE_FOUR_CC('d','a','t','a')


GST_RIFF_LIST_movi

#define GST_RIFF_LIST_movi MAKE_FOUR_CC('m','o','v','i')


GST_RIFF_LIST_hdrl

#define GST_RIFF_LIST_hdrl MAKE_FOUR_CC('h','d','r','l')


GST_RIFF_LIST_strl

#define GST_RIFF_LIST_strl MAKE_FOUR_CC('s','t','r','l')


GST_RIFF_FCC_vids

#define GST_RIFF_FCC_vids MAKE_FOUR_CC('v','i','d','s')


GST_RIFF_FCC_auds

#define GST_RIFF_FCC_auds MAKE_FOUR_CC('a','u','d','s')


GST_RIFF_FCC_pads

#define GST_RIFF_FCC_pads MAKE_FOUR_CC('p','a','d','s')


GST_RIFF_FCC_txts

#define GST_RIFF_FCC_txts MAKE_FOUR_CC('t','x','t','s')


GST_RIFF_FCC_vidc

#define GST_RIFF_FCC_vidc MAKE_FOUR_CC('v','i','d','c')


GST_RIFF_FCCH_RLE

#define GST_RIFF_FCCH_RLE  MAKE_FOUR_CC('R','L','E',' ')


GST_RIFF_FCCH_msvc

#define GST_RIFF_FCCH_msvc MAKE_FOUR_CC('m','s','v','c')


GST_RIFF_FCCH_MSVC

#define GST_RIFF_FCCH_MSVC MAKE_FOUR_CC('M','S','V','C')


GST_RIFF_FF00

#define GST_RIFF_FF00 MAKE_FOUR_CC(0xFF,0xFF,0x00,0x00)


GST_RIFF_00

#define GST_RIFF_00   MAKE_FOUR_CC( '0', '0',0x00,0x00)


GST_RIFF_01

#define GST_RIFF_01   MAKE_FOUR_CC( '0', '1',0x00,0x00)


GST_RIFF_02

#define GST_RIFF_02   MAKE_FOUR_CC( '0', '2',0x00,0x00)


GST_RIFF_03

#define GST_RIFF_03   MAKE_FOUR_CC( '0', '3',0x00,0x00)


GST_RIFF_04

#define GST_RIFF_04   MAKE_FOUR_CC( '0', '4',0x00,0x00)


GST_RIFF_05

#define GST_RIFF_05   MAKE_FOUR_CC( '0', '5',0x00,0x00)


GST_RIFF_06

#define GST_RIFF_06   MAKE_FOUR_CC( '0', '6',0x00,0x00)


GST_RIFF_07

#define GST_RIFF_07   MAKE_FOUR_CC( '0', '7',0x00,0x00)


GST_RIFF_00pc

#define GST_RIFF_00pc MAKE_FOUR_CC( '0', '0', 'p', 'c')


GST_RIFF_01pc

#define GST_RIFF_01pc MAKE_FOUR_CC( '0', '1', 'p', 'c')


GST_RIFF_00dc

#define GST_RIFF_00dc MAKE_FOUR_CC( '0', '0', 'd', 'c')


GST_RIFF_00dx

#define GST_RIFF_00dx MAKE_FOUR_CC( '0', '0', 'd', 'x')


GST_RIFF_00db

#define GST_RIFF_00db MAKE_FOUR_CC( '0', '0', 'd', 'b')


GST_RIFF_00xx

#define GST_RIFF_00xx MAKE_FOUR_CC( '0', '0', 'x', 'x')


GST_RIFF_00id

#define GST_RIFF_00id MAKE_FOUR_CC( '0', '0', 'i', 'd')


GST_RIFF_00rt

#define GST_RIFF_00rt MAKE_FOUR_CC( '0', '0', 'r', 't')


GST_RIFF_0021

#define GST_RIFF_0021 MAKE_FOUR_CC( '0', '0', '2', '1')


GST_RIFF_00iv

#define GST_RIFF_00iv MAKE_FOUR_CC( '0', '0', 'i', 'v')


GST_RIFF_0031

#define GST_RIFF_0031 MAKE_FOUR_CC( '0', '0', '3', '1')


GST_RIFF_0032

#define GST_RIFF_0032 MAKE_FOUR_CC( '0', '0', '3', '2')


GST_RIFF_00vc

#define GST_RIFF_00vc MAKE_FOUR_CC( '0', '0', 'v', 'c')


GST_RIFF_00xm

#define GST_RIFF_00xm MAKE_FOUR_CC( '0', '0', 'x', 'm')


GST_RIFF_01wb

#define GST_RIFF_01wb MAKE_FOUR_CC( '0', '1', 'w', 'b')


GST_RIFF_01dc

#define GST_RIFF_01dc MAKE_FOUR_CC( '0', '1', 'd', 'c')


GST_RIFF_cram

#define GST_RIFF_cram MAKE_FOUR_CC( 'c', 'r', 'a', 'm')


GST_RIFF_CRAM

#define GST_RIFF_CRAM MAKE_FOUR_CC( 'C', 'R', 'A', 'M')


GST_RIFF_wham

#define GST_RIFF_wham MAKE_FOUR_CC( 'w', 'h', 'a', 'm')


GST_RIFF_WHAM

#define GST_RIFF_WHAM MAKE_FOUR_CC( 'W', 'H', 'A', 'M')


GST_RIFF_rgb

#define GST_RIFF_rgb  MAKE_FOUR_CC(0x00,0x00,0x00,0x00)


GST_RIFF_RGB

#define GST_RIFF_RGB  MAKE_FOUR_CC( 'R', 'G', 'B', ' ')


GST_RIFF_rle8

#define GST_RIFF_rle8 MAKE_FOUR_CC(0x01,0x00,0x00,0x00)


GST_RIFF_RLE8

#define GST_RIFF_RLE8 MAKE_FOUR_CC( 'R', 'L', 'E', '8')


GST_RIFF_rle4

#define GST_RIFF_rle4 MAKE_FOUR_CC(0x02,0x00,0x00,0x00)


GST_RIFF_RLE4

#define GST_RIFF_RLE4 MAKE_FOUR_CC( 'R', 'L', 'E', '4')


GST_RIFF_none

#define GST_RIFF_none MAKE_FOUR_CC(0x00,0x00,0xFF,0xFF)


GST_RIFF_NONE

#define GST_RIFF_NONE MAKE_FOUR_CC( 'N', 'O', 'N', 'E')


GST_RIFF_pack

#define GST_RIFF_pack MAKE_FOUR_CC(0x01,0x00,0xFF,0xFF)


GST_RIFF_PACK

#define GST_RIFF_PACK MAKE_FOUR_CC( 'P', 'A', 'C', 'K')


GST_RIFF_tran

#define GST_RIFF_tran MAKE_FOUR_CC(0x02,0x00,0xFF,0xFF)


GST_RIFF_TRAN

#define GST_RIFF_TRAN MAKE_FOUR_CC( 'T', 'R', 'A', 'N')


GST_RIFF_ccc

#define GST_RIFF_ccc  MAKE_FOUR_CC(0x03,0x00,0xFF,0xFF)


GST_RIFF_CCC

#define GST_RIFF_CCC  MAKE_FOUR_CC( 'C', 'C', 'C', ' ')


GST_RIFF_cyuv

#define GST_RIFF_cyuv MAKE_FOUR_CC( 'c', 'y', 'u', 'v')


GST_RIFF_CYUV

#define GST_RIFF_CYUV MAKE_FOUR_CC( 'C', 'Y', 'U', 'V')


GST_RIFF_jpeg

#define GST_RIFF_jpeg MAKE_FOUR_CC(0x04,0x00,0xFF,0xFF)


GST_RIFF_JPEG

#define GST_RIFF_JPEG MAKE_FOUR_CC( 'J', 'P', 'E', 'G')


GST_RIFF_MJPG

#define GST_RIFF_MJPG MAKE_FOUR_CC( 'M', 'J', 'P', 'G')


GST_RIFF_mJPG

#define GST_RIFF_mJPG MAKE_FOUR_CC( 'm', 'J', 'P', 'G')


GST_RIFF_IJPG

#define GST_RIFF_IJPG MAKE_FOUR_CC( 'I', 'J', 'P', 'G')


GST_RIFF_rt21

#define GST_RIFF_rt21 MAKE_FOUR_CC( 'r', 't', '2', '1')


GST_RIFF_RT21

#define GST_RIFF_RT21 MAKE_FOUR_CC( 'R', 'T', '2', '1')


GST_RIFF_iv31

#define GST_RIFF_iv31 MAKE_FOUR_CC( 'i', 'v', '3', '1')


GST_RIFF_IV31

#define GST_RIFF_IV31 MAKE_FOUR_CC( 'I', 'V', '3', '1')


GST_RIFF_iv32

#define GST_RIFF_iv32 MAKE_FOUR_CC( 'i', 'v', '3', '2')


GST_RIFF_IV32

#define GST_RIFF_IV32 MAKE_FOUR_CC( 'I', 'V', '3', '2')


GST_RIFF_iv41

#define GST_RIFF_iv41 MAKE_FOUR_CC( 'i', 'v', '4', '1')


GST_RIFF_IV41

#define GST_RIFF_IV41 MAKE_FOUR_CC( 'I', 'V', '4', '1')


GST_RIFF_iv50

#define GST_RIFF_iv50 MAKE_FOUR_CC( 'i', 'v', '5', '0')


GST_RIFF_IV50

#define GST_RIFF_IV50 MAKE_FOUR_CC( 'I', 'V', '5', '0')


GST_RIFF_cvid

#define GST_RIFF_cvid MAKE_FOUR_CC( 'c', 'v', 'i', 'd')


GST_RIFF_CVID

#define GST_RIFF_CVID MAKE_FOUR_CC( 'C', 'V', 'I', 'D')


GST_RIFF_ULTI

#define GST_RIFF_ULTI MAKE_FOUR_CC( 'U', 'L', 'T', 'I')


GST_RIFF_ulti

#define GST_RIFF_ulti MAKE_FOUR_CC( 'u', 'l', 't', 'i')


GST_RIFF_YUV9

#define GST_RIFF_YUV9 MAKE_FOUR_CC( 'Y', 'V', 'U', '9')


GST_RIFF_YVU9

#define GST_RIFF_YVU9 MAKE_FOUR_CC( 'Y', 'U', 'V', '9')


GST_RIFF_XMPG

#define GST_RIFF_XMPG MAKE_FOUR_CC( 'X', 'M', 'P', 'G')


GST_RIFF_xmpg

#define GST_RIFF_xmpg MAKE_FOUR_CC( 'x', 'm', 'p', 'g')


GST_RIFF_VDOW

#define GST_RIFF_VDOW MAKE_FOUR_CC( 'V', 'D', 'O', 'W')


GST_RIFF_MVI1

#define GST_RIFF_MVI1 MAKE_FOUR_CC( 'M', 'V', 'I', '1')


GST_RIFF_v422

#define GST_RIFF_v422 MAKE_FOUR_CC( 'v', '4', '2', '2')


GST_RIFF_V422

#define GST_RIFF_V422 MAKE_FOUR_CC( 'V', '4', '2', '2')


GST_RIFF_mvi1

#define GST_RIFF_mvi1 MAKE_FOUR_CC( 'm', 'v', 'i', '1')


GST_RIFF_MPIX

#define GST_RIFF_MPIX MAKE_FOUR_CC(0x04,0x00, 'i', '1')     /* MotionPixels munged their id */


GST_RIFF_AURA

#define GST_RIFF_AURA MAKE_FOUR_CC( 'A', 'U', 'R', 'A')


GST_RIFF_DMB1

#define GST_RIFF_DMB1 MAKE_FOUR_CC( 'D', 'M', 'B', '1')


GST_RIFF_dmb1

#define GST_RIFF_dmb1 MAKE_FOUR_CC( 'd', 'm', 'b', '1')


GST_RIFF_BW10

#define GST_RIFF_BW10 MAKE_FOUR_CC( 'B', 'W', '1', '0')


GST_RIFF_bw10

#define GST_RIFF_bw10 MAKE_FOUR_CC( 'b', 'w', '1', '0')


GST_RIFF_yuy2

#define GST_RIFF_yuy2 MAKE_FOUR_CC( 'y', 'u', 'y', '2')


GST_RIFF_YUY2

#define GST_RIFF_YUY2 MAKE_FOUR_CC( 'Y', 'U', 'Y', '2')


GST_RIFF_YUV8

#define GST_RIFF_YUV8 MAKE_FOUR_CC( 'Y', 'U', 'V', '8')


GST_RIFF_WINX

#define GST_RIFF_WINX MAKE_FOUR_CC( 'W', 'I', 'N', 'X')


GST_RIFF_WPY2

#define GST_RIFF_WPY2 MAKE_FOUR_CC( 'W', 'P', 'Y', '2')


GST_RIFF_m263

#define GST_RIFF_m263 MAKE_FOUR_CC( 'm', '2', '6', '3')


GST_RIFF_M263

#define GST_RIFF_M263 MAKE_FOUR_CC( 'M', '2', '6', '3')


GST_RIFF_Q1_0

#define GST_RIFF_Q1_0 MAKE_FOUR_CC( 'Q', '1',0x2e, '0')


GST_RIFF_SFMC

#define GST_RIFF_SFMC MAKE_FOUR_CC( 'S', 'F', 'M', 'C')


GST_RIFF_y41p

#define GST_RIFF_y41p MAKE_FOUR_CC( 'y', '4', '1', 'p')


GST_RIFF_Y41P

#define GST_RIFF_Y41P MAKE_FOUR_CC( 'Y', '4', '1', 'P')


GST_RIFF_yv12

#define GST_RIFF_yv12 MAKE_FOUR_CC( 'y', 'v', '1', '2')


GST_RIFF_YV12

#define GST_RIFF_YV12 MAKE_FOUR_CC( 'Y', 'V', '1', '2')


GST_RIFF_vixl

#define GST_RIFF_vixl MAKE_FOUR_CC( 'v', 'i', 'x', 'l')


GST_RIFF_VIXL

#define GST_RIFF_VIXL MAKE_FOUR_CC( 'V', 'I', 'X', 'L')


GST_RIFF_iyuv

#define GST_RIFF_iyuv MAKE_FOUR_CC( 'i', 'y', 'u', 'v')


GST_RIFF_IYUV

#define GST_RIFF_IYUV MAKE_FOUR_CC( 'I', 'Y', 'U', 'V')


GST_RIFF_i420

#define GST_RIFF_i420 MAKE_FOUR_CC( 'i', '4', '2', '0')


GST_RIFF_I420

#define GST_RIFF_I420 MAKE_FOUR_CC( 'I', '4', '2', '0')


GST_RIFF_vyuy

#define GST_RIFF_vyuy MAKE_FOUR_CC( 'v', 'y', 'u', 'y')


GST_RIFF_VYUY

#define GST_RIFF_VYUY MAKE_FOUR_CC( 'V', 'Y', 'U', 'Y')


GST_RIFF_DIV3

#define GST_RIFF_DIV3 MAKE_FOUR_CC( 'D', 'I', 'V', '3')


GST_RIFF_rpza

#define GST_RIFF_rpza MAKE_FOUR_CC( 'r', 'p', 'z', 'a')


GST_RIFF_azpr

#define GST_RIFF_azpr MAKE_FOUR_CC( 'a', 'z', 'p', 'r')  /* recognize Apple's rpza mangled? */


GST_RIFF_ISFT

#define GST_RIFF_ISFT MAKE_FOUR_CC( 'I', 'S', 'F', 'T')


GST_RIFF_IDIT

#define GST_RIFF_IDIT MAKE_FOUR_CC( 'I', 'D', 'I', 'T')


GST_RIFF_00AM

#define GST_RIFF_00AM MAKE_FOUR_CC( '0', '0', 'A', 'M')


GST_RIFF_DISP

#define GST_RIFF_DISP MAKE_FOUR_CC( 'D', 'I', 'S', 'P')


GST_RIFF_ISBJ

#define GST_RIFF_ISBJ MAKE_FOUR_CC( 'I', 'S', 'B', 'J')


GST_RIFF_rec

#define GST_RIFF_rec  MAKE_FOUR_CC( 'r', 'e', 'c', ' ')


struct gst_riff_avih

struct gst_riff_avih {
  guint32 us_frame;          /* microsec per frame */
  guint32 max_bps;           /* byte/s overall */
  guint32 pad_gran;          /* pad_gran (???) */
  guint32 flags;
/* flags values */
#define GST_RIFF_AVIH_HASINDEX       0x00000010 /* has idx1 chunk */
#define GST_RIFF_AVIH_MUSTUSEINDEX   0x00000020 /* must use idx1 chunk to determine order */
#define GST_RIFF_AVIH_ISINTERLEAVED  0x00000100 /* AVI file is interleaved */
#define GST_RIFF_AVIH_WASCAPTUREFILE 0x00010000 /* specially allocated used for capturing real time video */
#define GST_RIFF_AVIH_COPYRIGHTED    0x00020000 /* contains copyrighted data */
  guint32 tot_frames;        /* # of frames (all) */
  guint32 init_frames;       /* initial frames (???) */
  guint32 streams;
  guint32 bufsize;           /* suggested buffer size */
  guint32 width;
  guint32 height;
  guint32 scale;
  guint32 rate;
  guint32 start;
  guint32 length;
};


struct gst_riff_strh

struct gst_riff_strh {
  guint32 type;             /* stream type */
  guint32 fcc_handler;       /* fcc_handler */
  guint32 flags;
/* flags values */
#define GST_RIFF_STRH_DISABLED        0x000000001
#define GST_RIFF_STRH_VIDEOPALCHANGES 0x000010000
  guint32 priority;
  guint32 init_frames;       /* initial frames (???) */
  guint32 scale;
  guint32 rate;
  guint32 start;
  guint32 length;
  guint32 bufsize;           /* suggested buffer size */
  guint32 quality;
  guint32 samplesize;
  /* XXX 16 bytes ? */
};


struct gst_riff_strf_vids

struct gst_riff_strf_vids {       /* == BitMapInfoHeader */
  guint32 size;
  guint32 width;
  guint32 height;
  guint16 planes;
  guint16 bit_cnt;
  guint32 compression;
  guint32 image_size;
  guint32 xpels_meter;
  guint32 ypels_meter;
  guint32 num_colors;        /* used colors */
  guint32 imp_colors;        /* important colors */
  /* may be more for some codecs */
};


struct gst_riff_strf_auds

struct gst_riff_strf_auds {       /* == WaveHeader (?) */
  guint16 format;
/**** from public Microsoft RIFF docs ******/
#define GST_RIFF_WAVE_FORMAT_UNKNOWN        (0x0000)
#define GST_RIFF_WAVE_FORMAT_PCM            (0x0001)
#define GST_RIFF_WAVE_FORMAT_ADPCM          (0x0002)
#define GST_RIFF_WAVE_FORMAT_IBM_CVSD       (0x0005)
#define GST_RIFF_WAVE_FORMAT_ALAW           (0x0006)
#define GST_RIFF_WAVE_FORMAT_MULAW          (0x0007)
#define GST_RIFF_WAVE_FORMAT_OKI_ADPCM      (0x0010)
#define GST_RIFF_WAVE_FORMAT_DVI_ADPCM      (0x0011)
#define GST_RIFF_WAVE_FORMAT_DIGISTD        (0x0015)
#define GST_RIFF_WAVE_FORMAT_DIGIFIX        (0x0016)
#define GST_RIFF_WAVE_FORMAT_YAMAHA_ADPCM   (0x0020)
#define GST_RIFF_WAVE_FORMAT_DSP_TRUESPEECH (0x0022)
#define GST_RIFF_WAVE_FORMAT_GSM610         (0x0031)
#define GST_RIFF_WAVE_FORMAT_MSN            (0x0032)
#define GST_RIFF_WAVE_FORMAT_MPEGL12        (0x0050)
#define GST_RIFF_WAVE_FORMAT_MPEGL3         (0x0055)
#define GST_RIFF_IBM_FORMAT_MULAW           (0x0101)
#define GST_RIFF_IBM_FORMAT_ALAW            (0x0102)
#define GST_RIFF_IBM_FORMAT_ADPCM           (0x0103)
#define GST_RIFF_WAVE_FORMAT_DIVX           (0x0160)
#define GST_RIFF_WAVE_FORMAT_divx           (0x0161)
  guint16 channels;
  guint32 rate;
  guint32 av_bps;
  guint16 blockalign;
  guint16 size;
};


struct gst_riff_riff

struct gst_riff_riff {  
  guint32 id;
  guint32 size;
  guint32 type;
};


struct gst_riff_list

struct gst_riff_list {  
  guint32 id;
  guint32 size;
  guint32 type;
};


struct gst_riff_chunk

struct gst_riff_chunk {  
  guint32 id;
  guint32 size;
};


struct gst_riff_index_entry

struct gst_riff_index_entry {  
  guint32 id;
  guint32 flags;
#define GST_RIFF_IF_LIST		(0x00000001L)
#define GST_RIFF_IF_KEYFRAME		(0x00000010L)
#define GST_RIFF_IF_NO_TIME		(0x00000100L)
#define GST_RIFF_IF_COMPUSE		(0x0FFF0000L)
  guint32 offset;
  guint32 size;
};


struct GstRiff

struct GstRiff {
  guint32 form;

  /* list of chunks, most recent at the head */
  GList *chunks;

  /* incomplete chunks are assembled here */
  GstRiffChunk *incomplete_chunk;
  guint32 incomplete_chunk_size;
  /* parse state */
  GstRiffParserState state;
  guint32 curoffset;
  guint32 nextlikely;
  /* leftover data */
  guchar *dataleft;
  guint32 dataleft_size;

  /* callback function and data pointer */
  GstRiffCallback new_tag_found;
  gpointer callback_data;
};


struct GstRiffChunk

struct GstRiffChunk {
  gulong offset;

  guint32 id;
  guint32 size;
  guint32 form; /* for list chunks */

  gchar *data;
};


GstRiffCallback ()

void        (*GstRiffCallback)              (GstRiffChunk *chunk,
                                             gpointer data);

chunk : 
data : 


gst_riff_parser_new ()

GstRiff*    gst_riff_parser_new             (GstRiffCallback function,
                                             gpointer data);

function : 
data : 
Returns : 


gst_riff_parser_next_buffer ()

GstRiffReturn gst_riff_parser_next_buffer   (GstRiff *riff,
                                             GstBuffer *buf,
                                             gulong off);

riff : 
buf : 
off : 
Returns : 


gst_riff_parser_resync ()

void        gst_riff_parser_resync          (GstRiff *riff,
                                             gulong offset);

riff : 
offset : 


gst_riff_encoder_new ()

GstRiff*    gst_riff_encoder_new            (guint32 type);

type : 
Returns : 


gst_riff_encoder_avih ()

GstRiffReturn gst_riff_encoder_avih         (GstRiff *riff,
                                             gst_riff_avih *head,
                                             gulong size);

riff : 
head : 
size : 
Returns : 


gst_riff_encoder_strh ()

GstRiffReturn gst_riff_encoder_strh         (GstRiff *riff,
                                             guint32 fcc_type,
                                             gst_riff_strh *head,
                                             gulong size);

riff : 
fcc_type : 
head : 
size : 
Returns : 


gst_riff_encoder_strf ()

GstRiffReturn gst_riff_encoder_strf         (GstRiff *riff,
                                             void *format,
                                             gulong size);

riff : 
format : 
size : 
Returns : 


gst_riff_encoder_chunk ()

GstRiffReturn gst_riff_encoder_chunk        (GstRiff *riff,
                                             guint32 chunk_type,
                                             void *chunk,
                                             gulong size);

riff : 
chunk_type : 
chunk : 
size : 
Returns : 


gst_riff_encoder_get_buffer ()

GstBuffer*  gst_riff_encoder_get_buffer     (GstRiff *riff);

riff : 
Returns : 


gst_riff_encoder_get_and_reset_buffer ()

GstBuffer*  gst_riff_encoder_get_and_reset_buffer
                                            (GstRiff *riff);

riff : 
Returns : 


gst_riff_fourcc_to_id ()

gulong      gst_riff_fourcc_to_id           (gchar *fourcc);

fourcc : 
Returns : 


gst_riff_id_to_fourcc ()

gchar*      gst_riff_id_to_fourcc           (gulong id);

id : 
Returns :