The quality scale field is only supposed to be present if the fourth bit is set. In practice, lame always sets it, but other tools might not.
CC:[email protected] --- libavformat/mp3dec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c index 14d8254..5aee21f 100644 --- a/libavformat/mp3dec.c +++ b/libavformat/mp3dec.c @@ -36,6 +36,7 @@ #define XING_FLAG_FRAMES 0x01 #define XING_FLAG_SIZE 0x02 #define XING_FLAG_TOC 0x04 +#define XING_FLAC_QSCALE 0x08 #define XING_TOC_COUNT 100 @@ -165,7 +166,8 @@ static void mp3_parse_info_tag(AVFormatContext *s, AVStream *st, st->time_base)); /* VBR quality */ - avio_rb32(s->pb); + if (v & XING_FLAC_QSCALE) + avio_rb32(s->pb); /* Encoder short version string */ memset(version, 0, sizeof(version)); -- 2.0.0 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
