From 0a13487b1a2dae29fc5b27cb32253b10f08d17f8 Mon Sep 17 00:00:00 2001 From: Peter Ross Date: Fri, 18 Apr 2014 15:56:28 +1000 Subject: avformat/dsddec: create audio stream before processing id3 This ensures stream[0] is always the audio stream (an assumption made in dsf_read_packet). Signed-off-by: Peter Ross Signed-off-by: Michael Niedermayer --- libavformat/dsfdec.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'libavformat') diff --git a/libavformat/dsfdec.c b/libavformat/dsfdec.c index 74fd7aa7d7..fee551df35 100644 --- a/libavformat/dsfdec.c +++ b/libavformat/dsfdec.c @@ -70,6 +70,11 @@ static int dsf_read_header(AVFormatContext *s) if (avio_rl64(pb) != 28) return AVERROR_INVALIDDATA; + /* create primary stream before any id3 coverart streams */ + st = avformat_new_stream(s, NULL); + if (!st) + return AVERROR(ENOMEM); + avio_skip(pb, 8); id3pos = avio_rl64(pb); if (pb->seekable) { @@ -92,10 +97,6 @@ static int dsf_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } - st = avformat_new_stream(s, NULL); - if (!st) - return AVERROR(ENOMEM); - channel_type = avio_rl32(pb); if (channel_type < FF_ARRAY_ELEMS(dsf_channel_layout)) st->codec->channel_layout = dsf_channel_layout[channel_type]; -- cgit v1.2.3