From 1f70a5ad284b33e8b3e2b40a5cb33055419781b7 Mon Sep 17 00:00:00 2001 From: John Stebbins Date: Thu, 22 Aug 2013 07:25:17 -0700 Subject: [PATCH] mov: use tkhd enabled flag to set the default track Signed-off-by: Anton Khirnov --- libavformat/isom.h | 5 +++++ libavformat/mov.c | 10 +++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/libavformat/isom.h b/libavformat/isom.h index 932b1d0a68..94f1296a1d 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -190,6 +190,11 @@ void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id); #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO 0x02000000 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES 0x01000000 +#define MOV_TKHD_FLAG_ENABLED 0x0001 +#define MOV_TKHD_FLAG_IN_MOVIE 0x0002 +#define MOV_TKHD_FLAG_IN_PREVIEW 0x0004 +#define MOV_TKHD_FLAG_IN_POSTER 0x0008 + int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb, MOVAtom atom); enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags); diff --git a/libavformat/mov.c b/libavformat/mov.c index 0c938cd2dd..c036b21fd3 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2125,6 +2125,7 @@ static int mov_read_tkhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) AVStream *st; MOVStreamContext *sc; int version; + int flags; if (c->fc->nb_streams < 1) return 0; @@ -2132,13 +2133,8 @@ static int mov_read_tkhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) sc = st->priv_data; version = avio_r8(pb); - avio_rb24(pb); /* flags */ - /* - MOV_TRACK_ENABLED 0x0001 - MOV_TRACK_IN_MOVIE 0x0002 - MOV_TRACK_IN_PREVIEW 0x0004 - MOV_TRACK_IN_POSTER 0x0008 - */ + flags = avio_rb24(pb); + st->disposition |= (flags & MOV_TKHD_FLAG_ENABLED) ? AV_DISPOSITION_DEFAULT : 0; if (version == 1) { avio_rb64(pb);