mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avformat: fix ID3v2 parser for v2.2 comment frames
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
b9f2f93261
commit
ecd360041e
@ -823,6 +823,7 @@ static void id3v2_parse(AVIOContext *pb, AVDictionary **metadata,
|
||||
const ID3v2EMFunc *extra_func = NULL;
|
||||
unsigned char *uncompressed_buffer = NULL;
|
||||
av_unused int uncompressed_buffer_size = 0;
|
||||
const char *comm_frame;
|
||||
|
||||
av_log(s, AV_LOG_DEBUG, "id3v2 ver:%d flags:%02X len:%d\n", version, flags, len);
|
||||
|
||||
@ -834,12 +835,14 @@ static void id3v2_parse(AVIOContext *pb, AVDictionary **metadata,
|
||||
}
|
||||
isv34 = 0;
|
||||
taghdrlen = 6;
|
||||
comm_frame = "COM";
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case 4:
|
||||
isv34 = 1;
|
||||
taghdrlen = 10;
|
||||
comm_frame = "COMM";
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -950,7 +953,7 @@ static void id3v2_parse(AVIOContext *pb, AVDictionary **metadata,
|
||||
/* check for text tag or supported special meta tag */
|
||||
} else if (tag[0] == 'T' ||
|
||||
!memcmp(tag, "USLT", 4) ||
|
||||
!memcmp(tag, "COMM", 4) ||
|
||||
!strcmp(tag, comm_frame) ||
|
||||
(extra_meta &&
|
||||
(extra_func = get_extra_meta_func(tag, isv34)))) {
|
||||
pbx = pb;
|
||||
@ -1018,7 +1021,7 @@ static void id3v2_parse(AVIOContext *pb, AVDictionary **metadata,
|
||||
read_ttag(s, pbx, tlen, metadata, tag);
|
||||
else if (!memcmp(tag, "USLT", 4))
|
||||
read_uslt(s, pbx, tlen, metadata);
|
||||
else if (!memcmp(tag, "COMM", 4))
|
||||
else if (!strcmp(tag, comm_frame))
|
||||
read_comment(s, pbx, tlen, metadata);
|
||||
else
|
||||
/* parse special meta tag */
|
||||
|
Loading…
Reference in New Issue
Block a user