|  |  |  | GStreamer Base Plugins 0.10 Library Reference Manual |  | 
|---|---|---|---|---|
#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;
#define GST_RIFF_INFO_IPLT GST_MAKE_FOURCC ('I','P','L','T') /* palette setting */
#define GST_RIFF_MPIX GST_MAKE_FOURCC (0x04,0x00, 'i', '1') /* MotionPixels munged their id */
#define GST_RIFF_azpr GST_MAKE_FOURCC ('a', 'z', 'p', 'r')  /* recognize Apple's rpza mangled? */
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: | |
| strh: | |
| strf: | |
| strf_data: | |
| strd_data: | |
| codec_name: | |
| Returns : | 
GstCaps* gst_riff_create_audio_template_caps (void);
| Returns : | 
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: | |
| strh: | |
| strf: | |
| strf_data: | |
| strd_data: | |
| codec_name: | |
| Returns : | 
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: | |
| strh: | |
| strf: | |
| strf_data: | |
| strd_data: | |
| codec_name: | |
| Returns : | 
GstCaps* gst_riff_create_video_template_caps (void);
| Returns : | 
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;
gboolean gst_riff_parse_chunk (GstElement *element, GstBuffer *buf, guint *offset, guint32 *fourcc, GstBuffer **chunk_data);
Reads a single chunk.
| 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 | 
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: | 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. | 
void gst_riff_parse_info (GstElement *element, GstBuffer *buf, GstTagList **taglist);
Parses stream metadata from input data.
| 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. | 
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: | 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. | 
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: | 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. | 
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: | 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. | 
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: | 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. | 
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: | 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. | 
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_IEEE_FLOAT     (0x0003)
#define GST_RIFF_WAVE_FORMAT_VSELP          (0x0004)
#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_MEDIASPACE_ADPCM (0x0012)
#define GST_RIFF_WAVE_FORMAT_SIERRA_ADPCM   (0x0013)
#define GST_RIFF_WAVE_FORMAT_G723_ADPCM     (0x0014)
#define GST_RIFF_WAVE_FORMAT_DIGISTD        (0x0015)
#define GST_RIFF_WAVE_FORMAT_DIGIFIX        (0x0016)
#define GST_RIFF_WAVE_FORMAT_DIALOGIC_OKI_ADPCM (0x0017)
#define GST_RIFF_WAVE_FORMAT_MEDIAVISION_ADPCM  (0x0018)
#define GST_RIFF_WAVE_FORMAT_CU_CODEC       (0x0019)
#define GST_RIFF_WAVE_FORMAT_YAMAHA_ADPCM   (0x0020)
#define GST_RIFF_WAVE_FORMAT_SONARC         (0x0021)
#define GST_RIFF_WAVE_FORMAT_DSP_TRUESPEECH (0x0022)
#define GST_RIFF_WAVE_FORMAT_ECHOSC1        (0x0023)
#define GST_RIFF_WAVE_FORMAT_AUDIOFILE_AF36 (0x0024)
#define GST_RIFF_WAVE_FORMAT_APTX           (0x0025)
#define GST_RIFF_WAVE_FORMAT_AUDIOFILE_AF10 (0x0026)
#define GST_RIFF_WAVE_FORMAT_PROSODY_1612   (0x0027)
#define GST_RIFF_WAVE_FORMAT_LRC            (0x0028)
#define GST_RIFF_WAVE_FORMAT_DOLBY_AC2      (0x0030)
#define GST_RIFF_WAVE_FORMAT_GSM610         (0x0031)
#define GST_RIFF_WAVE_FORMAT_MSN            (0x0032)
#define GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME   (0x0033 
#define GST_RIFF_WAVE_FORMAT_CONTROL_RES_VQLPC (0x0034)
#define GST_RIFF_WAVE_FORMAT_DIGIREAL       (0x0035)
#define GST_RIFF_WAVE_FORMAT_DIGIADPCM      (0x0036)
#define GST_RIFF_WAVE_FORMAT_CONTROL_RES_CR10  (0x0037)
#define GST_RIFF_WAVE_FORMAT_NMS_VBXADPCM   (0x0038)
#define GST_RIFF_WAVE_FORMAT_CS_IMAADPCM    (0x0039)
#define GST_RIFF_WAVE_FORMAT_ECHOSC3        (0x003A)
#define GST_RIFF_WAVE_FORMAT_ROCKWELL_ADPCM (0x003B)
#define GST_RIFF_WAVE_FORMAT_ROCKWELL_DIGITALK (0x003C)
#define GST_RIFF_WAVE_FORMAT_XEBEC          (0x003D)
#define GST_RIFF_WAVE_FORMAT_ITU_G721_ADPCM (0x0040)
#define GST_RIFF_WAVE_FORMAT_G728_CELP      (0x0041)
#define GST_RIFF_WAVE_FORMAT_MSG723         (0x0042)
#define GST_RIFF_WAVE_FORMAT_MPEGL12        (0x0050)
#define GST_RIFF_WAVE_FORMAT_RT24           (0x0052)
#define GST_RIFF_WAVE_FORMAT_PAC            (0x0053)
#define GST_RIFF_WAVE_FORMAT_MPEGL3         (0x0055)
#define GST_RIFF_WAVE_FORMAT_LUCENT_G723    (0x0059)
#define GST_RIFF_WAVE_FORMAT_CIRRUS         (0x0060)
#define GST_RIFF_WAVE_FORMAT_ESPCM          (0x0061)
#define GST_RIFF_WAVE_FORMAT_VOXWARE        (0x0062)
#define GST_RIFF_WAVE_FORMAT_CANOPUS_ATRAC  (0x0063)
#define GST_RIFF_WAVE_FORMAT_G726_ADPCM     (0x0064)
#define GST_RIFF_WAVE_FORMAT_G722_ADPCM     (0x0065)
#define GST_RIFF_WAVE_FORMAT_DSAT_DISPLAY   (0x0067)
#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_SOFTSOUND      (0x0080)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ60   (0x0081)
#define GST_RIFF_WAVE_FORMAT_MSRT24         (0x0082)
#define GST_RIFF_WAVE_FORMAT_G729A          (0x0083)
#define GST_RIFF_WAVE_FORMAT_MVI_MVI2       (0x0084)
#define GST_RIFF_WAVE_FORMAT_DF_G726        (0x0085)
#define GST_RIFF_WAVE_FORMAT_DF_GSM610      (0x0086)
#define GST_RIFF_WAVE_FORMAT_ISIAUDIO       (0x0088)
#define GST_RIFF_WAVE_FORMAT_ONLIVE         (0x0089)
#define GST_RIFF_WAVE_FORMAT_SBC24          (0x0091)
#define GST_RIFF_WAVE_FORMAT_DOLBY_AC3_SPDIF  (0x0092)
#define GST_RIFF_WAVE_FORMAT_MEDIASONIC_G723  (0x0093)
#define GST_RIFF_WAVE_FORMAT_PROSODY_8KBPS  (0x0094)
#define GST_RIFF_WAVE_FORMAT_ZYXEL_ADPCM    (0x0097)
#define GST_RIFF_WAVE_FORMAT_PHILIPS_LPCBB  (0x0098)
#define GST_RIFF_WAVE_FORMAT_PACKED         (0x0099)
#define GST_RIFF_WAVE_FORMAT_MALDEN_PHONYTALK (0x00A0)
#define GST_RIFF_WAVE_FORMAT_AAC            (0x00ff)
#define GST_RIFF_WAVE_FORMAT_RHETOREX_ADPCM (0x0100)
#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_VIVO_G723      (0x0111)
#define GST_RIFF_WAVE_FORMAT_VIVO_SIREN     (0x0112)
#define GST_RIFF_WAVE_FORMAT_DIGITAL_G723   (0x0123)
#define GST_RIFF_WAVE_FORMAT_SANYO_LD_ADPCM (0x0125)
#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACEPLNET  (0x0130)
#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACELP4800 (0x0131)
#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACELP8V3  (0x0132)
#define GST_RIFF_WAVE_FORMAT_SIPROLAB_G729   (0x0133)
#define GST_RIFF_WAVE_FORMAT_SIPROLAB_G729A  (0x0134)
#define GST_RIFF_WAVE_FORMAT_SIPROLAB_KELVIN (0x0135)
#define GST_RIFF_WAVE_FORMAT_G726ADPCM       (0x0140)
#define GST_RIFF_WAVE_FORMAT_QUALCOMM_PUREVOICE (0x0150)
#define GST_RIFF_WAVE_FORMAT_QUALCOMM_HALFRATE  (0x0151)
#define GST_RIFF_WAVE_FORMAT_TUBGSM             (0x0155)
#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_CREATIVE_ADPCM (0x0200)
#define GST_RIFF_WAVE_FORMAT_CREATIVE_FASTSPEECH8  (0x0202)
#define GST_RIFF_WAVE_FORMAT_CREATIVE_FASTSPEECH10 (0x0203)
#define GST_RIFF_WAVE_FORMAT_UHER_ADPCM     (0x0210)
#define GST_RIFF_WAVE_FORMAT_QUARTERDECK    (0x0220)
#define GST_RIFF_WAVE_FORMAT_ILINK_VC       (0x0230)
#define GST_RIFF_WAVE_FORMAT_RAW_SPORT      (0x0240)
#define GST_RIFF_WAVE_FORMAT_IPI_HSX        (0x0250)
#define GST_RIFF_WAVE_FORMAT_IPI_RPELP      (0x0251)
#define GST_RIFF_WAVE_FORMAT_CS2            (0x0260)
#define GST_RIFF_WAVE_FORMAT_SONY_ATRAC3    (0x0270)
#define GST_RIFF_WAVE_FORMAT_FM_TOWNS_SND   (0x0300)
#define GST_RIFF_WAVE_FORMAT_BTV_DIGITAL    (0x0400)
#define GST_RIFF_WAVE_FORMAT_QDESIGN_MUSIC  (0x0450)
#define GST_RIFF_WAVE_FORMAT_VME_VMPCM      (0x0680)
#define GST_RIFF_WAVE_FORMAT_TPC            (0x0681)
#define GST_RIFF_WAVE_FORMAT_OLIGSM         (0x1000)
#define GST_RIFF_WAVE_FORMAT_OLIADPCM       (0x1001)
#define GST_RIFF_WAVE_FORMAT_OLICELP        (0x1002)
#define GST_RIFF_WAVE_FORMAT_OLISBC         (0x1003)
#define GST_RIFF_WAVE_FORMAT_OLIOPR         (0x1004)
#define GST_RIFF_WAVE_FORMAT_LH_CODEC       (0x1100)
#define GST_RIFF_WAVE_FORMAT_NORRIS         (0x1400)
#define GST_RIFF_WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS (0x1500)
#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;
typedef struct {
  guint32 DVAAuxSrc;
  guint32 DVAAuxCtl;
  guint32 DVAAuxSrc1;
  guint32 DVAAuxCtl1;
  guint32 DVVAuxSrc;
  guint32 DVVAuxCtl;
  guint32 DVReserved1;
  guint32 DVReserved2;
} gst_riff_strf_iavs;
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;
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;