diff --git a/libavformat/oggparsespeex.c b/libavformat/oggparsespeex.c index eb7709cddd5118d5536c7161c8ba3738add61212..19789e093030cc7c66a69c4184981ce92492a4c9 100644 --- a/libavformat/oggparsespeex.c +++ b/libavformat/oggparsespeex.c @@ -36,9 +36,10 @@ static int speex_header(AVFormatContext *s, int idx) { AVStream *st = s->streams[idx]; uint8_t *p = os->buf + os->pstart; - if (os->psize < 80) - return 1; + if (os->seq > 1) + return 0; + if (os->seq == 0) { st->codec->codec_type = CODEC_TYPE_AUDIO; st->codec->codec_id = CODEC_ID_SPEEX; @@ -50,8 +51,10 @@ static int speex_header(AVFormatContext *s, int idx) { st->time_base.num = 1; st->time_base.den = st->codec->sample_rate; + } else + vorbis_comment(s, p, os->psize); - return 0; + return 1; } const struct ogg_codec ff_speex_codec = {