On 18/10/14 18:36, Anton Khirnov wrote:
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));
lame does set the flag I take.
Patch fine for me.
lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel