id3v2: use an enum for encodings instead of magic numbers.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
c2dd0e9eba
commit
d66eff3685
@ -74,7 +74,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
|
|||||||
|
|
||||||
switch (get_byte(pb)) { /* encoding type */
|
switch (get_byte(pb)) { /* encoding type */
|
||||||
|
|
||||||
case 0: /* ISO-8859-1 (0 - 255 maps directly into unicode) */
|
case ID3v2_ENCODING_ISO8859:
|
||||||
q = dst;
|
q = dst;
|
||||||
while (taglen-- && q - dst < dstlen - 7) {
|
while (taglen-- && q - dst < dstlen - 7) {
|
||||||
uint8_t tmp;
|
uint8_t tmp;
|
||||||
@ -83,7 +83,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
|
|||||||
*q = 0;
|
*q = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: /* UTF-16 with BOM */
|
case ID3v2_ENCODING_UTF16BOM:
|
||||||
taglen -= 2;
|
taglen -= 2;
|
||||||
switch (get_be16(pb)) {
|
switch (get_be16(pb)) {
|
||||||
case 0xfffe:
|
case 0xfffe:
|
||||||
@ -96,7 +96,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
|
|||||||
}
|
}
|
||||||
// fall-through
|
// fall-through
|
||||||
|
|
||||||
case 2: /* UTF-16BE without BOM */
|
case ID3v2_ENCODING_UTF16BE:
|
||||||
q = dst;
|
q = dst;
|
||||||
while (taglen > 1 && q - dst < dstlen - 7) {
|
while (taglen > 1 && q - dst < dstlen - 7) {
|
||||||
uint32_t ch;
|
uint32_t ch;
|
||||||
@ -108,7 +108,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
|
|||||||
*q = 0;
|
*q = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: /* UTF-8 */
|
case ID3v2_ENCODING_UTF8:
|
||||||
len = FFMIN(taglen, dstlen);
|
len = FFMIN(taglen, dstlen);
|
||||||
get_buffer(pb, dst, len);
|
get_buffer(pb, dst, len);
|
||||||
dst[len] = 0;
|
dst[len] = 0;
|
||||||
|
@ -38,6 +38,13 @@
|
|||||||
#define ID3v2_FLAG_ENCRYPTION 0x0004
|
#define ID3v2_FLAG_ENCRYPTION 0x0004
|
||||||
#define ID3v2_FLAG_COMPRESSION 0x0008
|
#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.
|
* Detect ID3v2 Header.
|
||||||
* @param buf must be ID3v2_HEADER_SIZE byte long
|
* @param buf must be ID3v2_HEADER_SIZE byte long
|
||||||
|
Loading…
x
Reference in New Issue
Block a user