diff options
| author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-12-08 22:10:20 +0000 |
|---|---|---|
| committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-12-08 22:10:20 +0000 |
| commit | a6bf32b2367408085a6dd253394924c97b24cf9d (patch) | |
| tree | 3f66cbb75c719e92690cf8cc8ce16d0202d31fff /src/demuxers/id3.h | |
| parent | ff61f5f3ff1314f8bd2350a9b71165b11f7f7855 (diff) | |
| download | xine-lib-a6bf32b2367408085a6dd253394924c97b24cf9d.tar.gz xine-lib-a6bf32b2367408085a6dd253394924c97b24cf9d.tar.bz2 | |
- Fix wrong tag header constants.
- Add more v2.3 and v2.4 constants
- Check invalid flags
CVS patchset: 5877
CVS date: 2003/12/08 22:10:20
Diffstat (limited to 'src/demuxers/id3.h')
| -rw-r--r-- | src/demuxers/id3.h | 70 |
1 files changed, 52 insertions, 18 deletions
diff --git a/src/demuxers/id3.h b/src/demuxers/id3.h index 09fc950b0..2da088e2b 100644 --- a/src/demuxers/id3.h +++ b/src/demuxers/id3.h @@ -22,7 +22,7 @@ * Supported versions: v1, v2.2 * TODO: v2.3, v2.4 * - * $Id: id3.h,v 1.1 2003/12/07 23:05:41 tmattern Exp $ + * $Id: id3.h,v 1.2 2003/12/08 22:10:20 tmattern Exp $ */ #ifndef ID3_H @@ -38,23 +38,57 @@ #define ID3V23_TAG FOURCC_TAG('I', 'D', '3', 3) /* id3 v2.3 tags */ #define ID3V24_TAG FOURCC_TAG('I', 'D', '3', 4) /* id3 v2.4 tags */ -/* id2v2.2 */ -#define ID3V22_FRAME_HEADER_SIZE 6 -#define ID3V22_UNSYNCH_FLAG 0x8000 -#define ID3V22_COMPRESS_FLAG 0x4000 - -/* id2v2.3 */ -#define ID3V23_FRAME_HEADER_SIZE 10 -#define ID3V23_UNSYNCH_FLAG 0x8000 -#define ID3V23_EXTHEAD_FLAG 0x4000 -#define ID3V23_EXP_FLAG 0x2000 - -/* id2v2.4 */ -#define ID3V24_FRAME_HEADER_SIZE 10 -#define ID3V24_UNSYNCH_FLAG 0x8000 -#define ID3V24_EXTHEAD_FLAG 0x4000 -#define ID3V24_EXP_FLAG 0x2000 -#define ID3V24_FOOTER_FLAG 0x1000 +/* + * ID3 v2.2 + */ +/* tag header */ +#define ID3V22_UNSYNCH_FLAG 0x80 +#define ID3V22_COMPRESS_FLAG 0x40 +#define ID3V22_ZERO_FLAG 0x3F + +/* frame header */ +#define ID3V22_FRAME_HEADER_SIZE 6 + +/* + * ID3 v2.3 + */ +/* tag header */ +#define ID3V23_UNSYNCH_FLAG 0x80 +#define ID3V23_EXT_HEADER_FLAG 0x40 +#define ID3V23_EXPERIMENTAL_FLAG 0x20 +#define ID3V23_ZERO_FLAG 0x1F + +/* frame header */ +#define ID3V23_FRAME_HEADER_SIZE 10 +#define ID3V23_FRAME_TAG_PRESERV_FLAG 0x8000 +#define ID3V23_FRAME_FILE_PRESERV_FLAG 0x4000 +#define ID3V23_FRAME_READ_ONLY_FLAG 0x2000 +#define ID3V23_FRAME_COMPRESS_FLAG 0x0080 +#define ID3V23_FRAME_ENCRYPT_FLAG 0x0040 +#define ID3V23_FRAME_GROUP_ID_FLAG 0x0020 +#define ID3V23_FRAME_ZERO_FLAG 0x1F1F + +/* + * ID3 v2.4 + */ +/* tag header */ +#define ID3V24_UNSYNCH_FLAG 0x80 +#define ID3V24_EXT_HEADER_FLAG 0x40 +#define ID3V24_EXPERIMENTAL_FLAG 0x20 +#define ID3V24_FOOTER_FLAG 0x10 +#define ID3V24_ZERO_FLAG 0x0F + +/* frame header */ +#define ID3V24_FRAME_HEADER_SIZE 10 +#define ID3V24_FRAME_TAG_PRESERV_FLAG 0x4000 +#define ID3V24_FRAME_FILE_PRESERV_FLAG 0x2000 +#define ID3V24_FRAME_READ_ONLY_FLAG 0x1000 +#define ID3V24_FRAME_GROUP_ID_FLAG 0x0040 +#define ID3V24_FRAME_COMPRESS_FLAG 0x0008 +#define ID3V24_FRAME_ENCRYPT_FLAG 0x0004 +#define ID3V24_FRAME_UNSYNCH_FLAG 0x0002 +#define ID3V24_FRAME_DATA_LEN_FLAG 0x0001 +#define ID3V24_FRAME_ZERO_FLAG 0x8FB0 typedef struct { uint32_t id; |
