[FFmpeg-cvslog] movenc: add video_track_timescale option

Jean First git at videolan.org
Sat May 18 16:48:01 CEST 2013


ffmpeg | branch: master | Jean First <jeanfirst at gmail.com> | Thu May 16 23:35:05 2013 +0200| [7e570f027b9bb0b5504ed443c70ceb654930859d] | committer: Michael Niedermayer

movenc: add video_track_timescale option

Signed-off-by: Jean First <jeanfirst at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7e570f027b9bb0b5504ed443c70ceb654930859d
---

 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 594f22b..2787e45 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 a5db895..ff8f76e 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



More information about the ffmpeg-cvslog mailing list