]> git.sesse.net Git - ffmpeg/commitdiff
avformat/matroskaenc: do not write timebase as framerate
authorwm4 <nfxjfg@googlemail.com>
Sat, 28 Apr 2018 17:24:12 +0000 (19:24 +0200)
committerwm4 <nfxjfg@googlemail.com>
Fri, 4 May 2018 12:16:38 +0000 (14:16 +0200)
If the API user doesn't set avg_frame_rate, matroskaenc will write the
current timebase as "default duration" for the video track. This makes
no sense, because the "default duration" implies the framerate of the
video. Since the timebase is forced to 1/1000, this will make the
resulting file claim 1000fps.

Drop it and don't write the element. It's optional, so it's better not
to write it if the framerate is unknown.

Strangely does not require FATE changes.

libavformat/matroskaenc.c

index 5950b4de4436f7a71a09a95ca4947385f6931a6d..b7ff1950d3317c2f2ed8da40965619fe6b0cbb19 100644 (file)
@@ -1304,8 +1304,6 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
         if(   st->avg_frame_rate.num > 0 && st->avg_frame_rate.den > 0
            && av_cmp_q(av_inv_q(st->avg_frame_rate), st->time_base) > 0)
             put_ebml_uint(pb, MATROSKA_ID_TRACKDEFAULTDURATION, 1000000000LL * st->avg_frame_rate.den / st->avg_frame_rate.num);
-        else
-            put_ebml_uint(pb, MATROSKA_ID_TRACKDEFAULTDURATION, 1000000000LL * st->time_base.num / st->time_base.den);
 
         if (!native_id &&
             ff_codec_get_tag(ff_codec_movvideo_tags, par->codec_id) &&