diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c index c481a79d4b..d1064e4328 100644 --- a/libavformat/oggparsetheora.c +++ b/libavformat/oggparsetheora.c @@ -193,7 +193,7 @@ static int theora_packet(AVFormatContext *s, int idx) if (pts != AV_NOPTS_VALUE) pts = av_sat_sub64(pts, duration); os->lastpts = os->lastdts = pts; - if(s->streams[idx]->start_time == AV_NOPTS_VALUE) { + if(s->streams[idx]->start_time == AV_NOPTS_VALUE && os->lastpts != AV_NOPTS_VALUE) { s->streams[idx]->start_time = os->lastpts; if (s->streams[idx]->duration > 0) s->streams[idx]->duration -= s->streams[idx]->start_time;