From c14f8a52b0aa40bdb9a6c6e692b3b0cef6c5cf3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Tue, 1 Jan 2013 16:15:39 +0100 Subject: [PATCH] lavf/mov: fix timecode track reference usage. --- libavformat/mov.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 97edcd3347..2d733264e6 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -3128,7 +3128,7 @@ static int mov_read_header(AVFormatContext *s) { MOVContext *mov = s->priv_data; AVIOContext *pb = s->pb; - int i, err; + int i, j, err; MOVAtom atom = { AV_RL32("root") }; mov->fc = s; @@ -3165,9 +3165,13 @@ static int mov_read_header(AVFormatContext *s) MOVStreamContext *sc = st->priv_data; if (sc->timecode_track > 0) { AVDictionaryEntry *tcr; - int tmcd_st_id = sc->timecode_track - 1; + int tmcd_st_id = -1; - if (tmcd_st_id < 0 || tmcd_st_id >= s->nb_streams) + for (j = 0; j < s->nb_streams; j++) + if (s->streams[j]->id == sc->timecode_track) + tmcd_st_id = j; + + if (tmcd_st_id < 0) continue; tcr = av_dict_get(s->streams[tmcd_st_id]->metadata, "timecode", NULL, 0); if (tcr)