gst-libs/gst/riff/riff-ids.h: Adding acid chunk for tempo and loop information.

Original commit message from CVS:
* gst-libs/gst/riff/riff-ids.h:
Adding acid chunk for tempo and loop information.
This commit is contained in:
Stefan Kost 2008-07-30 09:02:31 +00:00
parent 329de8cfc5
commit 4f37ce04f6
2 changed files with 41 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2008-07-30 Stefan Kost <ensonic@users.sf.net>
* gst-libs/gst/riff/riff-ids.h:
Adding acid chunk for tempo and loop information.
2008-07-29 Stefan Kost <ensonic@users.sf.net> 2008-07-29 Stefan Kost <ensonic@users.sf.net>
* sys/xvimage/Makefile.am: * sys/xvimage/Makefile.am:

View file

@ -52,6 +52,7 @@ G_BEGIN_DECLS
#define GST_RIFF_TAG_bext GST_MAKE_FOURCC ('b','e','x','t') #define GST_RIFF_TAG_bext GST_MAKE_FOURCC ('b','e','x','t')
#define GST_RIFF_TAG_BEXT GST_MAKE_FOURCC ('B','E','X','T') #define GST_RIFF_TAG_BEXT GST_MAKE_FOURCC ('B','E','X','T')
#define GST_RIFF_TAG_fact GST_MAKE_FOURCC ('f','a','c','t') #define GST_RIFF_TAG_fact GST_MAKE_FOURCC ('f','a','c','t')
#define GST_RIFF_TAG_acid GST_MAKE_FOURCC ('a','c','i','d')
/* LIST types */ /* LIST types */
#define GST_RIFF_LIST_movi GST_MAKE_FOURCC ('m','o','v','i') #define GST_RIFF_LIST_movi GST_MAKE_FOURCC ('m','o','v','i')
@ -455,6 +456,41 @@ typedef struct _gst_riff_dmlh {
guint32 totalframes; guint32 totalframes;
} gst_riff_dmlh; } gst_riff_dmlh;
/* taken from libsndfile/wav.c (LGPL) */
typedef struct _gst_riff_acid {
/* 4 bytes (int) type of file:
* this appears to be a bit mask,however some combinations
* are probably impossible and/or qualified as "errors"
*
* 0x01 On: One Shot Off: Loop
* 0x02 On: Root note is Set Off: No root
* 0x04 On: Stretch is On, Off: Strech is OFF
* 0x08 On: Disk Based Off: Ram based
* 0x10 On: ?????????? Off: ????????? (Acidizer puts that ON)
*/
guint32 loop_type;
/* 2 bytes (short) root note
* if type 0x10 is OFF : [C,C#,(...),B] -> [0x30 to 0x3B]
* if type 0x10 is ON : [C,C#,(...),B] -> [0x3C to 0x47]
* (both types fit on same MIDI pitch albeit different octaves, so who cares)
*/
guint16 root_note;
/* 2 bytes (short) ??? always set to 0x8000
* 4 bytes (float) ??? seems to be always 0
*/
guint16 unknown1;
gfloat unknown2;
/* 4 bytes (int) number of beats
* 2 bytes (short) meter denominator //always 4 in SF/ACID
* 2 bytes (short) meter numerator //always 4 in SF/ACID
* //are we sure about the order?? usually its num/denom
* 4 bytes (float) tempo
*/
guint32 number_of_beats;
guint16 meter_d, meter_n;
gfloat tempo;
} gst_riff_acid;
G_END_DECLS G_END_DECLS
#endif /* __GST_RIFF_IDS_H__ */ #endif /* __GST_RIFF_IDS_H__ */