From 7e570f027b9bb0b5504ed443c70ceb654930859d Mon Sep 17 00:00:00 2001 From: Jean First Date: Thu, 16 May 2013 23:35:05 +0200 Subject: [PATCH] movenc: add video_track_timescale option Signed-off-by: Jean First Signed-off-by: Michael Niedermayer --- libavformat/movenc.c | 11 ++++++++--- libavformat/movenc.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 594f22bd7d..2787e453b9 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -62,6 +62,7 @@ static const AVOption options[] = { { "frag_size", "Maximum fragment size", offsetof(MOVMuxContext, max_fragment_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { "ism_lookahead", "Number of lookahead entries for ISM files", offsetof(MOVMuxContext, ism_lookahead), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { "use_editlist", "use edit list", offsetof(MOVMuxContext, use_editlist), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, AV_OPT_FLAG_ENCODING_PARAM}, + { "video_track_timescale", "set timescale of all video tracks", offsetof(MOVMuxContext, video_track_timescale), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { NULL }, }; @@ -3624,9 +3625,13 @@ static int mov_write_header(AVFormatContext *s) } track->height = track->tag>>24 == 'n' ? 486 : 576; } - track->timescale = st->codec->time_base.den; - while(track->timescale < 10000) - track->timescale *= 2; + if (mov->video_track_timescale) { + track->timescale = mov->video_track_timescale; + } else { + track->timescale = st->codec->time_base.den; + while(track->timescale < 10000) + track->timescale *= 2; + } if (track->mode == MODE_MOV && track->timescale > 100000) av_log(s, AV_LOG_WARNING, "WARNING codec timebase is very high. If duration is too long,\n" diff --git a/libavformat/movenc.h b/libavformat/movenc.h index a5db8950ab..ff8f76e4af 100644 --- a/libavformat/movenc.h +++ b/libavformat/movenc.h @@ -168,6 +168,7 @@ typedef struct MOVMuxContext { AVIOContext *mdat_buf; int use_editlist; + int video_track_timescale; } MOVMuxContext; #define FF_MOV_FLAG_RTP_HINT 1