summaryrefslogtreecommitdiff
path: root/src/demuxers/id3.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/demuxers/id3.h')
-rw-r--r--src/demuxers/id3.h70
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;