]> git.sesse.net Git - ffmpeg/commitdiff
lavf/concatdec: handle NOPTS start_time.
authorNicolas George <george@nsup.org>
Mon, 15 Dec 2014 17:42:41 +0000 (18:42 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 15 Dec 2014 19:00:35 +0000 (20:00 +0100)
Fix trac ticket #3598.

Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/concatdec.c

index a2584d70e2af0f6b2484516ca118cc7968fa6264..e109524de1566ed619c564008c042e18cc9540a1 100644 (file)
@@ -478,7 +478,7 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt)
 {
     ConcatContext *cat = avf->priv_data;
     int ret;
-    int64_t delta;
+    int64_t file_start_time, delta;
     ConcatStream *cs;
     AVStream *st;
 
@@ -512,7 +512,10 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt)
            av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &st->time_base),
            av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &st->time_base));
 
-    delta = av_rescale_q(cat->cur_file->start_time - cat->avf->start_time,
+    file_start_time = cat->avf->start_time;
+    if (file_start_time == AV_NOPTS_VALUE)
+        file_start_time = 0;
+    delta = av_rescale_q(cat->cur_file->start_time - file_start_time,
                          AV_TIME_BASE_Q,
                          cat->avf->streams[pkt->stream_index]->time_base);
     if (pkt->pts != AV_NOPTS_VALUE)