aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2011-01-19 10:13:25 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-01-21 20:36:01 +0100
commiteeb0b893e3f68f98816e05316573908e46e3ebb5 (patch)
treed52cdefd2b0effc7040c0ca4726d847466b7ae50
parenta091006d3d18c094312ebb4b3f064e419ef941b0 (diff)
downloadffmpeg-eeb0b893e3f68f98816e05316573908e46e3ebb5.tar.gz
id3v2: use an enum for encodings instead of magic numbers.
Signed-off-by: Mans Rullgard <mans@mansr.com> (cherry picked from commit d66eff36852975129ae499c56de4340e48b9b7b4)
-rw-r--r--libavformat/id3v2.c8
-rw-r--r--libavformat/id3v2.h7
2 files changed, 11 insertions, 4 deletions
diff --git a/libavformat/id3v2.c b/libavformat/id3v2.c
index 95ec0b05cb..62eee15591 100644
--- a/libavformat/id3v2.c
+++ b/libavformat/id3v2.c
@@ -74,7 +74,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
switch (get_byte(pb)) { /* encoding type */
- case 0: /* ISO-8859-1 (0 - 255 maps directly into unicode) */
+ case ID3v2_ENCODING_ISO8859:
q = dst;
while (taglen-- && q - dst < dstlen - 7) {
uint8_t tmp;
@@ -83,7 +83,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
*q = 0;
break;
- case 1: /* UTF-16 with BOM */
+ case ID3v2_ENCODING_UTF16BOM:
taglen -= 2;
switch (get_be16(pb)) {
case 0xfffe:
@@ -96,7 +96,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
}
// fall-through
- case 2: /* UTF-16BE without BOM */
+ case ID3v2_ENCODING_UTF16BE:
q = dst;
while (taglen > 1 && q - dst < dstlen - 7) {
uint32_t ch;
@@ -108,7 +108,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
*q = 0;
break;
- case 3: /* UTF-8 */
+ case ID3v2_ENCODING_UTF8:
len = FFMIN(taglen, dstlen);
get_buffer(pb, dst, len);
dst[len] = 0;
diff --git a/libavformat/id3v2.h b/libavformat/id3v2.h
index 25ee53e9b8..c2e1add849 100644
--- a/libavformat/id3v2.h
+++ b/libavformat/id3v2.h
@@ -38,6 +38,13 @@
#define ID3v2_FLAG_ENCRYPTION 0x0004
#define ID3v2_FLAG_COMPRESSION 0x0008
+enum ID3v2Encoding {
+ ID3v2_ENCODING_ISO8859 = 0,
+ ID3v2_ENCODING_UTF16BOM = 1,
+ ID3v2_ENCODING_UTF16BE = 2,
+ ID3v2_ENCODING_UTF8 = 3,
+};
+
/**
* Detect ID3v2 Header.
* @param buf must be ID3v2_HEADER_SIZE byte long