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

Reply via email to