gstriff

gstriff —

Synopsis


#include <gst/riff/riff-media.h>


#define     GST_RIFF_00
#define     GST_RIFF_0021
#define     GST_RIFF_0031
#define     GST_RIFF_0032
#define     GST_RIFF_00AM
#define     GST_RIFF_00__
#define     GST_RIFF_00db
#define     GST_RIFF_00dc
#define     GST_RIFF_00dx
#define     GST_RIFF_00id
#define     GST_RIFF_00iv
#define     GST_RIFF_00pc
#define     GST_RIFF_00rt
#define     GST_RIFF_00vc
#define     GST_RIFF_00xm
#define     GST_RIFF_00xx
#define     GST_RIFF_01
#define     GST_RIFF_01dc
#define     GST_RIFF_01pc
#define     GST_RIFF_01wb
#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_AURA
#define     GST_RIFF_BW10
#define     GST_RIFF_CCC
#define     GST_RIFF_CRAM
#define     GST_RIFF_CVID
#define     GST_RIFF_CYUV
#define     GST_RIFF_DISP
#define     GST_RIFF_DIV3
#define     GST_RIFF_DMB1
#define     GST_RIFF_FCCH_MSVC
#define     GST_RIFF_FCCH_RLE
#define     GST_RIFF_FCCH_msvc
#define     GST_RIFF_FCC_auds
#define     GST_RIFF_FCC_iavs
#define     GST_RIFF_FCC_pads
#define     GST_RIFF_FCC_txts
#define     GST_RIFF_FCC_vidc
#define     GST_RIFF_FCC_vids
#define     GST_RIFF_FF00
#define     GST_RIFF_H263
#define     GST_RIFF_I420
#define     GST_RIFF_IDIT
#define     GST_RIFF_IJPG
#define     GST_RIFF_INFO_IARL
#define     GST_RIFF_INFO_IART
#define     GST_RIFF_INFO_ICMS
#define     GST_RIFF_INFO_ICMT
#define     GST_RIFF_INFO_ICOP
#define     GST_RIFF_INFO_ICRD
#define     GST_RIFF_INFO_ICRP
#define     GST_RIFF_INFO_IDIM
#define     GST_RIFF_INFO_IDPI
#define     GST_RIFF_INFO_IENG
#define     GST_RIFF_INFO_IGNR
#define     GST_RIFF_INFO_IKEY
#define     GST_RIFF_INFO_ILGT
#define     GST_RIFF_INFO_IMED
#define     GST_RIFF_INFO_INAM
#define     GST_RIFF_INFO_IPLT
#define     GST_RIFF_INFO_IPRD
#define     GST_RIFF_INFO_ISBJ
#define     GST_RIFF_INFO_ISFT
#define     GST_RIFF_INFO_ISHP
#define     GST_RIFF_INFO_ISRC
#define     GST_RIFF_INFO_ISRF
#define     GST_RIFF_INFO_ITCH
#define     GST_RIFF_ISBJ
#define     GST_RIFF_ISFT
#define     GST_RIFF_IV31
#define     GST_RIFF_IV32
#define     GST_RIFF_IV41
#define     GST_RIFF_IV50
#define     GST_RIFF_IYUV
#define     GST_RIFF_JPEG
#define     GST_RIFF_L263
#define     GST_RIFF_LIST_AVIX
#define     GST_RIFF_LIST_INFO
#define     GST_RIFF_LIST_adtl
#define     GST_RIFF_LIST_hdrl
#define     GST_RIFF_LIST_movi
#define     GST_RIFF_LIST_odml
#define     GST_RIFF_LIST_strl
#define     GST_RIFF_M263
#define     GST_RIFF_MJPG
#define     GST_RIFF_MPIX
#define     GST_RIFF_MVI1
#define     GST_RIFF_NONE
#define     GST_RIFF_PACK
#define     GST_RIFF_Q1_0
#define     GST_RIFF_RGB
#define     GST_RIFF_RIFF_AVI
#define     GST_RIFF_RIFF_CDXA
#define     GST_RIFF_RIFF_WAVE
#define     GST_RIFF_RLE4
#define     GST_RIFF_RLE8
#define     GST_RIFF_RT21
#define     GST_RIFF_SFMC
#define     GST_RIFF_TAG_BEXT
#define     GST_RIFF_TAG_JUNK
#define     GST_RIFF_TAG_LIST
#define     GST_RIFF_TAG_RIFF
#define     GST_RIFF_TAG_RIFX
#define     GST_RIFF_TAG_avih
#define     GST_RIFF_TAG_bext
#define     GST_RIFF_TAG_cue
#define     GST_RIFF_TAG_data
#define     GST_RIFF_TAG_dmlh
#define     GST_RIFF_TAG_fact
#define     GST_RIFF_TAG_fmt
#define     GST_RIFF_TAG_idx1
#define     GST_RIFF_TAG_plst
#define     GST_RIFF_TAG_strd
#define     GST_RIFF_TAG_strf
#define     GST_RIFF_TAG_strh
#define     GST_RIFF_TAG_strn
#define     GST_RIFF_TAG_vedt
#define     GST_RIFF_TRAN
#define     GST_RIFF_ULTI
#define     GST_RIFF_V422
#define     GST_RIFF_VDOW
#define     GST_RIFF_VIXL
#define     GST_RIFF_VSSH
#define     GST_RIFF_VYUY
#define     GST_RIFF_WHAM
#define     GST_RIFF_WINX
#define     GST_RIFF_WPY2
#define     GST_RIFF_XMPG
#define     GST_RIFF_Y41P
#define     GST_RIFF_YUV8
#define     GST_RIFF_YUV9
#define     GST_RIFF_YUY2
#define     GST_RIFF_YV12
#define     GST_RIFF_YVU9
#define     GST_RIFF_azpr
#define     GST_RIFF_bw10
#define     GST_RIFF_ccc
#define     GST_RIFF_cram
#define     GST_RIFF_cvid
#define     GST_RIFF_cyuv
#define     GST_RIFF_dmb1
#define     GST_RIFF_h263
#define     GST_RIFF_i263
#define     GST_RIFF_i420
#define     GST_RIFF_iv31
#define     GST_RIFF_iv32
#define     GST_RIFF_iv41
#define     GST_RIFF_iv50
#define     GST_RIFF_iyuv
#define     GST_RIFF_jpeg
#define     GST_RIFF_m263
#define     GST_RIFF_mJPG
#define     GST_RIFF_mvi1
#define     GST_RIFF_none
#define     GST_RIFF_pack
#define     GST_RIFF_rec
#define     GST_RIFF_rgb
#define     GST_RIFF_rle4
#define     GST_RIFF_rle8
#define     GST_RIFF_rpza
#define     GST_RIFF_rt21
#define     GST_RIFF_tran
#define     GST_RIFF_ulti
#define     GST_RIFF_v422
#define     GST_RIFF_vixl
#define     GST_RIFF_vyuy
#define     GST_RIFF_wham
#define     GST_RIFF_x263
#define     GST_RIFF_xmpg
#define     GST_RIFF_y41p
#define     GST_RIFF_yuy2
#define     GST_RIFF_yv12
GstCaps*    gst_riff_create_audio_caps      (guint16 codec_id,
                                             gst_riff_strh *strh,
                                             gst_riff_strf_auds *strf,
                                             GstBuffer *strf_data,
                                             GstBuffer *strd_data,
                                             char **codec_name);
GstCaps*    gst_riff_create_audio_template_caps
                                            (void);
GstCaps*    gst_riff_create_iavs_caps       (guint32 codec_fcc,
                                             gst_riff_strh *strh,
                                             gst_riff_strf_iavs *strf,
                                             GstBuffer *strf_data,
                                             GstBuffer *strd_data,
                                             char **codec_name);
GstCaps*    gst_riff_create_iavs_template_caps
                                            (void);
GstCaps*    gst_riff_create_video_caps      (guint32 codec_fcc,
                                             gst_riff_strh *strh,
                                             gst_riff_strf_vids *strf,
                                             GstBuffer *strf_data,
                                             GstBuffer *strd_data,
                                             char **codec_name);
GstCaps*    gst_riff_create_video_template_caps
                                            (void);
            gst_riff_dmlh;
            gst_riff_index_entry;
void        gst_riff_init                   (void);
gboolean    gst_riff_parse_chunk            (GstElement *element,
                                             GstBuffer *buf,
                                             guint *offset,
                                             guint32 *fourcc,
                                             GstBuffer **chunk_data);
gboolean    gst_riff_parse_file_header      (GstElement *element,
                                             GstBuffer *buf,
                                             guint32 *doctype);
void        gst_riff_parse_info             (GstElement *element,
                                             GstBuffer *buf,
                                             GstTagList **taglist);
gboolean    gst_riff_parse_strf_auds        (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strf_auds **strf,
                                             GstBuffer **data);
gboolean    gst_riff_parse_strf_iavs        (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strf_iavs **strf,
                                             GstBuffer **data);
gboolean    gst_riff_parse_strf_vids        (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strf_vids **strf,
                                             GstBuffer **data);
gboolean    gst_riff_parse_strh             (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strh **strh);
GstFlowReturn gst_riff_read_chunk           (GstElement *element,
                                             GstPad *pad,
                                             guint64 *offset,
                                             guint32 *tag,
                                             GstBuffer **chunk_data);
            gst_riff_strf_auds;
            gst_riff_strf_iavs;
            gst_riff_strf_vids;
            gst_riff_strh;

Description

Details

GST_RIFF_00

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


GST_RIFF_0021

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


GST_RIFF_0031

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


GST_RIFF_0032

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


GST_RIFF_00AM

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


GST_RIFF_00__

#define GST_RIFF_00__ GST_MAKE_FOURCC ('0', '0', '_', '_')


GST_RIFF_00db

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


GST_RIFF_00dc

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


GST_RIFF_00dx

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


GST_RIFF_00id

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


GST_RIFF_00iv

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


GST_RIFF_00pc

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


GST_RIFF_00rt

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


GST_RIFF_00vc

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


GST_RIFF_00xm

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


GST_RIFF_00xx

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


GST_RIFF_01

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


GST_RIFF_01dc

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


GST_RIFF_01pc

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


GST_RIFF_01wb

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


GST_RIFF_02

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


GST_RIFF_03

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


GST_RIFF_04

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


GST_RIFF_05

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


GST_RIFF_06

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


GST_RIFF_07

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


GST_RIFF_AURA

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


GST_RIFF_BW10

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


GST_RIFF_CCC

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


GST_RIFF_CRAM

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


GST_RIFF_CVID

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


GST_RIFF_CYUV

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


GST_RIFF_DISP

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


GST_RIFF_DIV3

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


GST_RIFF_DMB1

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


GST_RIFF_FCCH_MSVC

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


GST_RIFF_FCCH_RLE

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


GST_RIFF_FCCH_msvc

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


GST_RIFF_FCC_auds

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


GST_RIFF_FCC_iavs

#define GST_RIFF_FCC_iavs GST_MAKE_FOURCC ('i','a','v','s')


GST_RIFF_FCC_pads

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


GST_RIFF_FCC_txts

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


GST_RIFF_FCC_vidc

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


GST_RIFF_FCC_vids

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


GST_RIFF_FF00

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


GST_RIFF_H263

#define GST_RIFF_H263 GST_MAKE_FOURCC ('H', '2', '6', '3')


GST_RIFF_I420

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


GST_RIFF_IDIT

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


GST_RIFF_IJPG

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


GST_RIFF_INFO_IARL

#define GST_RIFF_INFO_IARL GST_MAKE_FOURCC ('I','A','R','L') /* location */


GST_RIFF_INFO_IART

#define GST_RIFF_INFO_IART GST_MAKE_FOURCC ('I','A','R','T') /* artist */


GST_RIFF_INFO_ICMS

#define GST_RIFF_INFO_ICMS GST_MAKE_FOURCC ('I','C','M','S') /* commissioned */


GST_RIFF_INFO_ICMT

#define GST_RIFF_INFO_ICMT GST_MAKE_FOURCC ('I','C','M','T') /* comment */


GST_RIFF_INFO_ICOP

#define GST_RIFF_INFO_ICOP GST_MAKE_FOURCC ('I','C','O','P') /* copyright */


GST_RIFF_INFO_ICRD

#define GST_RIFF_INFO_ICRD GST_MAKE_FOURCC ('I','C','R','D') /* creation date */


GST_RIFF_INFO_ICRP

#define GST_RIFF_INFO_ICRP GST_MAKE_FOURCC ('I','C','R','P') /* cropped */


GST_RIFF_INFO_IDIM

#define GST_RIFF_INFO_IDIM GST_MAKE_FOURCC ('I','D','I','M') /* dimensions */


GST_RIFF_INFO_IDPI

#define GST_RIFF_INFO_IDPI GST_MAKE_FOURCC ('I','D','P','I') /* dots-per-inch */


GST_RIFF_INFO_IENG

#define GST_RIFF_INFO_IENG GST_MAKE_FOURCC ('I','E','N','G') /* engineer(s) */


GST_RIFF_INFO_IGNR

#define GST_RIFF_INFO_IGNR GST_MAKE_FOURCC ('I','G','N','R') /* genre */


GST_RIFF_INFO_IKEY

#define GST_RIFF_INFO_IKEY GST_MAKE_FOURCC ('I','K','E','Y') /* keywords */


GST_RIFF_INFO_ILGT

#define GST_RIFF_INFO_ILGT GST_MAKE_FOURCC ('I','L','G','T') /* lightness */


GST_RIFF_INFO_IMED

#define GST_RIFF_INFO_IMED GST_MAKE_FOURCC ('I','M','E','D') /* medium */


GST_RIFF_INFO_INAM

#define GST_RIFF_INFO_INAM GST_MAKE_FOURCC ('I','N','A','M') /* name */


GST_RIFF_INFO_IPLT

#define GST_RIFF_INFO_IPLT GST_MAKE_FOURCC ('I','P','L','T') /* palette setting */


GST_RIFF_INFO_IPRD

#define GST_RIFF_INFO_IPRD GST_MAKE_FOURCC ('I','P','R','D') /* product */


GST_RIFF_INFO_ISBJ

#define GST_RIFF_INFO_ISBJ GST_MAKE_FOURCC ('I','S','B','J') /* subject */


GST_RIFF_INFO_ISFT

#define GST_RIFF_INFO_ISFT GST_MAKE_FOURCC ('I','S','F','T') /* software */


GST_RIFF_INFO_ISHP

#define GST_RIFF_INFO_ISHP GST_MAKE_FOURCC ('I','S','H','P') /* sharpness */


GST_RIFF_INFO_ISRC

#define GST_RIFF_INFO_ISRC GST_MAKE_FOURCC ('I','S','R','C') /* source */


GST_RIFF_INFO_ISRF

#define GST_RIFF_INFO_ISRF GST_MAKE_FOURCC ('I','S','R','F') /* source form */


GST_RIFF_INFO_ITCH

#define GST_RIFF_INFO_ITCH GST_MAKE_FOURCC ('I','T','C','H') /* technician(s) */


GST_RIFF_ISBJ

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


GST_RIFF_ISFT

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


GST_RIFF_IV31

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


GST_RIFF_IV32

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


GST_RIFF_IV41

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


GST_RIFF_IV50

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


GST_RIFF_IYUV

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


GST_RIFF_JPEG

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


GST_RIFF_L263

#define GST_RIFF_L263 GST_MAKE_FOURCC ('L', '2', '6', '3')


GST_RIFF_LIST_AVIX

#define GST_RIFF_LIST_AVIX GST_MAKE_FOURCC ('A','V','I','X')


GST_RIFF_LIST_INFO

#define GST_RIFF_LIST_INFO GST_MAKE_FOURCC ('I','N','F','O')


GST_RIFF_LIST_adtl

#define GST_RIFF_LIST_adtl GST_MAKE_FOURCC ('a','d','t','l')


GST_RIFF_LIST_hdrl

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


GST_RIFF_LIST_movi

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


GST_RIFF_LIST_odml

#define GST_RIFF_LIST_odml GST_MAKE_FOURCC ('o','d','m','l')


GST_RIFF_LIST_strl

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


GST_RIFF_M263

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


GST_RIFF_MJPG

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


GST_RIFF_MPIX

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


GST_RIFF_MVI1

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


GST_RIFF_NONE

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


GST_RIFF_PACK

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


GST_RIFF_Q1_0

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


GST_RIFF_RGB

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


GST_RIFF_RIFF_AVI

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


GST_RIFF_RIFF_CDXA

#define GST_RIFF_RIFF_CDXA GST_MAKE_FOURCC ('C','D','X','A')


GST_RIFF_RIFF_WAVE

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


GST_RIFF_RLE4

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


GST_RIFF_RLE8

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


GST_RIFF_RT21

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


GST_RIFF_SFMC

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


GST_RIFF_TAG_BEXT

#define GST_RIFF_TAG_BEXT GST_MAKE_FOURCC ('B','E','X','T')


GST_RIFF_TAG_JUNK

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


GST_RIFF_TAG_LIST

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


GST_RIFF_TAG_RIFF

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


GST_RIFF_TAG_RIFX

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


GST_RIFF_TAG_avih

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


GST_RIFF_TAG_bext

#define GST_RIFF_TAG_bext GST_MAKE_FOURCC ('b','e','x','t')


GST_RIFF_TAG_cue

#define GST_RIFF_TAG_cue  GST_MAKE_FOURCC ('c','u','e',' ')


GST_RIFF_TAG_data

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


GST_RIFF_TAG_dmlh

#define GST_RIFF_TAG_dmlh GST_MAKE_FOURCC ('d','m','l','h')


GST_RIFF_TAG_fact

#define GST_RIFF_TAG_fact GST_MAKE_FOURCC ('f','a','c','t')


GST_RIFF_TAG_fmt

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


GST_RIFF_TAG_idx1

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


GST_RIFF_TAG_plst

#define GST_RIFF_TAG_plst GST_MAKE_FOURCC ('p','l','s','t')


GST_RIFF_TAG_strd

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


GST_RIFF_TAG_strf

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


GST_RIFF_TAG_strh

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


GST_RIFF_TAG_strn

#define GST_RIFF_TAG_strn GST_MAKE_FOURCC ('s','t','r','n')


GST_RIFF_TAG_vedt

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


GST_RIFF_TRAN

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


GST_RIFF_ULTI

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


GST_RIFF_V422

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


GST_RIFF_VDOW

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


GST_RIFF_VIXL

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


GST_RIFF_VSSH

#define GST_RIFF_VSSH GST_MAKE_FOURCC ( 'V', 'S', 'S', 'H') /* H2.64 */


GST_RIFF_VYUY

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


GST_RIFF_WHAM

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


GST_RIFF_WINX

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


GST_RIFF_WPY2

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


GST_RIFF_XMPG

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


GST_RIFF_Y41P

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


GST_RIFF_YUV8

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


GST_RIFF_YUV9

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


GST_RIFF_YUY2

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


GST_RIFF_YV12

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


GST_RIFF_YVU9

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


GST_RIFF_azpr

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


GST_RIFF_bw10

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


GST_RIFF_ccc

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


GST_RIFF_cram

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


GST_RIFF_cvid

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


GST_RIFF_cyuv

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


GST_RIFF_dmb1

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


GST_RIFF_h263

#define GST_RIFF_h263 GST_MAKE_FOURCC ('h', '2', '6', '3')


GST_RIFF_i263

#define GST_RIFF_i263 GST_MAKE_FOURCC ('i', '2', '6', '3')


GST_RIFF_i420

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


GST_RIFF_iv31

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


GST_RIFF_iv32

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


GST_RIFF_iv41

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


GST_RIFF_iv50

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


GST_RIFF_iyuv

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


GST_RIFF_jpeg

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


GST_RIFF_m263

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


GST_RIFF_mJPG

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


GST_RIFF_mvi1

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


GST_RIFF_none

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


GST_RIFF_pack

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


GST_RIFF_rec

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


GST_RIFF_rgb

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


GST_RIFF_rle4

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


GST_RIFF_rle8

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


GST_RIFF_rpza

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


GST_RIFF_rt21

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


GST_RIFF_tran

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


GST_RIFF_ulti

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


GST_RIFF_v422

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


GST_RIFF_vixl

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


GST_RIFF_vyuy

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


GST_RIFF_wham

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


GST_RIFF_x263

#define GST_RIFF_x263 GST_MAKE_FOURCC ('x', '2', '6', '3')


GST_RIFF_xmpg

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


GST_RIFF_y41p

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


GST_RIFF_yuy2

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


GST_RIFF_yv12

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


gst_riff_create_audio_caps ()

GstCaps*    gst_riff_create_audio_caps      (guint16 codec_id,
                                             gst_riff_strh *strh,
                                             gst_riff_strf_auds *strf,
                                             GstBuffer *strf_data,
                                             GstBuffer *strd_data,
                                             char **codec_name);

codec_id :codec_id strh :strh strf :strf strf_data :strf_data strd_data :strd_data codec_name :codec_name Returns :Returns
codec_id :
strh :
strf :
strf_data :
strd_data :
codec_name :
Returns :

gst_riff_create_audio_template_caps ()

GstCaps*    gst_riff_create_audio_template_caps
                                            (void);

Returns :Returns
Returns :

gst_riff_create_iavs_caps ()

GstCaps*    gst_riff_create_iavs_caps       (guint32 codec_fcc,
                                             gst_riff_strh *strh,
                                             gst_riff_strf_iavs *strf,
                                             GstBuffer *strf_data,
                                             GstBuffer *strd_data,
                                             char **codec_name);

codec_fcc :codec_fcc strh :strh strf :strf strf_data :strf_data strd_data :strd_data codec_name :codec_name Returns :Returns
codec_fcc :
strh :
strf :
strf_data :
strd_data :
codec_name :
Returns :

gst_riff_create_iavs_template_caps ()

GstCaps*    gst_riff_create_iavs_template_caps
                                            (void);

Returns :Returns
Returns :

gst_riff_create_video_caps ()

GstCaps*    gst_riff_create_video_caps      (guint32 codec_fcc,
                                             gst_riff_strh *strh,
                                             gst_riff_strf_vids *strf,
                                             GstBuffer *strf_data,
                                             GstBuffer *strd_data,
                                             char **codec_name);

codec_fcc :codec_fcc strh :strh strf :strf strf_data :strf_data strd_data :strd_data codec_name :codec_name Returns :Returns
codec_fcc :
strh :
strf :
strf_data :
strd_data :
codec_name :
Returns :

gst_riff_create_video_template_caps ()

GstCaps*    gst_riff_create_video_template_caps
                                            (void);

Returns :Returns
Returns :

gst_riff_dmlh

typedef struct {
  guint32 totalframes;
} gst_riff_dmlh;


gst_riff_index_entry

typedef struct {
  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;
} gst_riff_index_entry;


gst_riff_init ()

void        gst_riff_init                   (void);


gst_riff_parse_chunk ()

gboolean    gst_riff_parse_chunk            (GstElement *element,
                                             GstBuffer *buf,
                                             guint *offset,
                                             guint32 *fourcc,
                                             GstBuffer **chunk_data);

Reads a single chunk.

element :element caller element (used for debugging). caller element (used for debugging). buf :buf input buffer. input buffer. offset :offset offset in the buffer in the caller. Is incremented by the read size by this function. offset in the buffer in the caller. Is incremented by the read size by this function. fourcc :fourcc fourcc (returned by this function0 of the chunk. fourcc (returned by this function0 of the chunk. chunk_data :chunk_data buffer (returned by the function) containing the chunk data. buffer (returned by the function) containing the chunk data. Returns :Returns the fourcc tag of this chunk, or FALSE on error the fourcc tag of this chunk, or FALSE on error
element : caller element (used for debugging).
buf : input buffer.
offset : offset in the buffer in the caller. Is incremented by the read size by this function.
fourcc : fourcc (returned by this function0 of the chunk.
chunk_data : buffer (returned by the function) containing the chunk data.
Returns : the fourcc tag of this chunk, or FALSE on error

gst_riff_parse_file_header ()

gboolean    gst_riff_parse_file_header      (GstElement *element,
                                             GstBuffer *buf,
                                             guint32 *doctype);

Reads the first few bytes from the provided buffer, checks if this stream is a RIFF stream, and determines document type. This function takes ownership of buf so it should not be used anymore after calling this function.

element :element caller element (used for debugging/error). caller element (used for debugging/error). buf :buf input buffer from which the file header will be parsed, should be at least 12 bytes long. input buffer from which the file header will be parsed, should be at least 12 bytes long. doctype :doctype a fourcc (returned by this function) to indicate the type of document (according to the header). a fourcc (returned by this function) to indicate the type of document (according to the header). Returns :Returns FALSE if this is not a RIFF stream (in which case the caller should error out; we already throw an error), or TRUE if it is. FALSE if this is not a RIFF stream (in which case the caller should error out; we already throw an error), or TRUE if it is.
element : caller element (used for debugging/error).
buf : input buffer from which the file header will be parsed, should be at least 12 bytes long.
doctype : a fourcc (returned by this function) to indicate the type of document (according to the header).
Returns : FALSE if this is not a RIFF stream (in which case the caller should error out; we already throw an error), or TRUE if it is.

gst_riff_parse_info ()

void        gst_riff_parse_info             (GstElement *element,
                                             GstBuffer *buf,
                                             GstTagList **taglist);

Parses stream metadata from input data.

element :element caller element (used for debugging/error). caller element (used for debugging/error). buf :buf input data to be used for parsing, stripped from header. input data to be used for parsing, stripped from header. taglist :taglist a pointer to a taglist (returned by this function) containing information about this stream. May be NULL if no supported tags were found. a pointer to a taglist (returned by this function) containing information about this stream. May be NULL if no supported tags were found.
element : caller element (used for debugging/error).
buf : input data to be used for parsing, stripped from header.
taglist : a pointer to a taglist (returned by this function) containing information about this stream. May be NULL if no supported tags were found.

gst_riff_parse_strf_auds ()

gboolean    gst_riff_parse_strf_auds        (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strf_auds **strf,
                                             GstBuffer **data);

Parses an audio stream´s strf structure plus optionally some extradata from input data. This function takes ownership of buf. use.

element :element caller element (used for debugging/error). caller element (used for debugging/error). buf :buf input data to be used for parsing, stripped from header. input data to be used for parsing, stripped from header. strf :strf a pointer (returned by this function) to a filled-in strf/auds structure. Caller should free it. a pointer (returned by this function) to a filled-in strf/auds structure. Caller should free it. data :data a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. codec initialization data). a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. codec initialization data). Returns :Returns TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal. TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal.
element : caller element (used for debugging/error).
buf : input data to be used for parsing, stripped from header.
strf : a pointer (returned by this function) to a filled-in strf/auds structure. Caller should free it.
data : a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. codec initialization data).
Returns : TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal.

gst_riff_parse_strf_iavs ()

gboolean    gst_riff_parse_strf_iavs        (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strf_iavs **strf,
                                             GstBuffer **data);

Parses a interleaved (also known as "complex") stream´s strf structure plus optionally some extradata from input data. This function takes ownership of buf.

element :element caller element (used for debugging/error). caller element (used for debugging/error). buf :buf input data to be used for parsing, stripped from header. input data to be used for parsing, stripped from header. strf :strf a pointer (returned by this function) to a filled-in strf/iavs structure. Caller should free it. a pointer (returned by this function) to a filled-in strf/iavs structure. Caller should free it. data :data a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. codec initialization data). a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. codec initialization data). Returns :Returns TRUE if parsing succeeded, otherwise FALSE. TRUE if parsing succeeded, otherwise FALSE.
element : caller element (used for debugging/error).
buf : input data to be used for parsing, stripped from header.
strf : a pointer (returned by this function) to a filled-in strf/iavs structure. Caller should free it.
data : a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. codec initialization data).
Returns : TRUE if parsing succeeded, otherwise FALSE.

gst_riff_parse_strf_vids ()

gboolean    gst_riff_parse_strf_vids        (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strf_vids **strf,
                                             GstBuffer **data);

Parses a video stream´s strf structure plus optionally some extradata from input data. This function takes ownership of buf.

element :element caller element (used for debugging/error). caller element (used for debugging/error). buf :buf input data to be used for parsing, stripped from header. input data to be used for parsing, stripped from header. strf :strf a pointer (returned by this function) to a filled-in strf/vids structure. Caller should free it. a pointer (returned by this function) to a filled-in strf/vids structure. Caller should free it. data :data a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. palette, codec initialization data). a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. palette, codec initialization data). Returns :Returns TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal. TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal.
element : caller element (used for debugging/error).
buf : input data to be used for parsing, stripped from header.
strf : a pointer (returned by this function) to a filled-in strf/vids structure. Caller should free it.
data : a pointer (returned by this function) to a buffer containing extradata for this particular stream (e.g. palette, codec initialization data).
Returns : TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal.

gst_riff_parse_strh ()

gboolean    gst_riff_parse_strh             (GstElement *element,
                                             GstBuffer *buf,
                                             gst_riff_strh **strh);

Parses a strh structure from input data. Takes ownership of buf.

element :element caller element (used for debugging/error). caller element (used for debugging/error). buf :buf input data to be used for parsing, stripped from header. input data to be used for parsing, stripped from header. strh :strh a pointer (returned by this function) to a filled-in strh structure. Caller should free it. a pointer (returned by this function) to a filled-in strh structure. Caller should free it. Returns :Returns TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal. TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal.
element : caller element (used for debugging/error).
buf : input data to be used for parsing, stripped from header.
strh : a pointer (returned by this function) to a filled-in strh structure. Caller should free it.
Returns : TRUE if parsing succeeded, otherwise FALSE. The stream should be skipped on error, but it is not fatal.

gst_riff_read_chunk ()

GstFlowReturn gst_riff_read_chunk           (GstElement *element,
                                             GstPad *pad,
                                             guint64 *offset,
                                             guint32 *tag,
                                             GstBuffer **chunk_data);

Reads a single chunk of data. Since 0.10.8 'JUNK' chunks are skipped automatically.

element :element caller element (used for debugging). caller element (used for debugging). pad :pad pad to pull data from. pad to pull data from. offset :offset offset to pull from, incremented by this function. offset to pull from, incremented by this function. tag :tag fourcc of the chunk (returned by this function). fourcc of the chunk (returned by this function). chunk_data :chunk_data buffer (returned by this function). buffer (returned by this function). Returns :Returns flow status. flow status.
element : caller element (used for debugging).
pad : pad to pull data from.
offset : offset to pull from, incremented by this function.
tag : fourcc of the chunk (returned by this function).
chunk_data : buffer (returned by this function).
Returns : flow status.

gst_riff_strf_auds

typedef struct {
       /* == 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_WMS            (0x000a) /* WMS Windows Media Audio Speech */
#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_ITU_G721_ADPCM (0x0040)
#define GST_RIFF_WAVE_FORMAT_MPEGL12        (0x0050)
#define GST_RIFF_WAVE_FORMAT_MPEGL3         (0x0055)
#define GST_RIFF_WAVE_FORMAT_VOXWARE        (0x0062)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_BYTE_ALIGNED (0x0069)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC8    (0x0070)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC10   (0x0071)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC16   (0x0072)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC20   (0x0073)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_METAVOICE (0x0074)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_METASOUND (0x0075)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_RT29HW (0x0076)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_VR12   (0x0077)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_VR18   (0x0078)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ40   (0x0079)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ60   (0x0081)
#define GST_RIFF_WAVE_FORMAT_AAC            (0x00ff)
#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_WMAV1          (0x0160)
#define GST_RIFF_WAVE_FORMAT_WMAV2          (0x0161)
#define GST_RIFF_WAVE_FORMAT_WMAV3          (0x0162)
#define GST_RIFF_WAVE_FORMAT_WMAV3_L        (0x0163)
#define GST_RIFF_WAVE_FORMAT_SONY_ATRAC3    (0x0270)
#define GST_RIFF_WAVE_FORMAT_A52            (0x2000)
#define GST_RIFF_WAVE_FORMAT_DTS            (0x2001)
#define GST_RIFF_WAVE_FORMAT_VORBIS1        (0x674f)
#define GST_RIFF_WAVE_FORMAT_VORBIS2        (0x6750)
#define GST_RIFF_WAVE_FORMAT_VORBIS3        (0x6751)
#define GST_RIFF_WAVE_FORMAT_VORBIS1PLUS    (0x676f)
#define GST_RIFF_WAVE_FORMAT_VORBIS2PLUS    (0x6770)
#define GST_RIFF_WAVE_FORMAT_VORBIS3PLUS    (0x6771)
#define GST_RIFF_WAVE_FORMAT_GSM_AMR_CBR    (0x7A21)
#define GST_RIFF_WAVE_FORMAT_GSM_AMR_VBR    (0x7A22)
#define GST_RIFF_WAVE_FORMAT_EXTENSIBLE     (0xFFFE)
  guint16 channels;
  guint32 rate;
  guint32 av_bps;
  guint16 blockalign;
  guint16 size;
} gst_riff_strf_auds;


gst_riff_strf_iavs

typedef struct {
  guint32 DVAAuxSrc;
  guint32 DVAAuxCtl;
  guint32 DVAAuxSrc1;
  guint32 DVAAuxCtl1;
  guint32 DVVAuxSrc;
  guint32 DVVAuxCtl;
  guint32 DVReserved1;
  guint32 DVReserved2;
} gst_riff_strf_iavs;


gst_riff_strf_vids

typedef struct {
       /* == 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 */
} gst_riff_strf_vids;


gst_riff_strh

typedef struct {
  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;
  /* rcFrame, RECT structure(struct of 4 shorts)
  gint32  left;
  gint32  top;
  gint32  right;
  gint32  bottom;
  */
} gst_riff_strh;