avformat/matroskaenc: Use avoid_negative_ts_use_pts if no stream writes dts

This reduces the number of cases where timestamps need to be shifted

Fixes Ticket4487

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9d4fdfe24c)
This commit is contained in:
Michael Niedermayer 2015-05-05 12:57:24 +02:00 committed by James Almer
parent 5a8b43285b
commit d9390b9d64
1 changed files with 4 additions and 1 deletions

View File

@ -940,6 +940,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
// if there is no mkv-specific codec ID, use VFW mode
put_ebml_string(pb, MATROSKA_ID_CODECID, "V_MS/VFW/FOURCC");
mkv->tracks[i].write_dts = 1;
s->internal->avoid_negative_ts_use_pts = 0;
}
subinfo = start_ebml_master(pb, MATROSKA_ID_TRACKVIDEO, 0);
@ -1316,8 +1317,10 @@ static int mkv_write_header(AVFormatContext *s)
else
mkv->mode = MODE_MATROSKAv2;
if (s->avoid_negative_ts < 0)
if (s->avoid_negative_ts < 0) {
s->avoid_negative_ts = 1;
s->internal->avoid_negative_ts_use_pts = 1;
}
if (mkv->mode != MODE_WEBM ||
av_dict_get(s->metadata, "stereo_mode", NULL, 0) ||