vorbis: parse out setup headers as well
authorBen Boeckel <mathstuf@gmail.com>
Mon, 2 Feb 2015 01:00:02 +0000 (20:00 -0500)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 2 Feb 2015 02:11:49 +0000 (03:11 +0100)
Prevents an 'Invalid packet' message. Currently mid-stream setup packets
are ignored. Theoretically, they could, based on the specification, be used to
reinitialize the stream if parameters change, but I don't expect that to be
common (and no one seems to have asked for it).

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/vorbis_parser.c
libavcodec/vorbis_parser.h

index 547fd47..8fa6d99 100644 (file)
@@ -229,6 +229,8 @@ int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf,
                 *flags |= VORBIS_FLAG_HEADER;
             else if (buf[0] == 3)
                 *flags |= VORBIS_FLAG_COMMENT;
+            else if (buf[0] == 5)
+                *flags |= VORBIS_FLAG_SETUP;
             else
                 goto bad_packet;
 
index 0f73537..06e48bd 100644 (file)
@@ -47,6 +47,7 @@ void av_vorbis_parse_free(AVVorbisParseContext **s);
 
 #define VORBIS_FLAG_HEADER  0x00000001
 #define VORBIS_FLAG_COMMENT 0x00000002
+#define VORBIS_FLAG_SETUP   0x00000004
 
 /**
  * Get the duration for a Vorbis packet.