Signed-off-by: Marton Balint <c...@passwd.hu> --- libavformat/concatdec.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index 7686f28..f262d44 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -316,6 +316,14 @@ static int open_file(AVFormatContext *avf, unsigned fileno) cat->files[fileno - 1].duration; file->file_start_time = (cat->avf->start_time == AV_NOPTS_VALUE) ? 0 : cat->avf->start_time; file->file_inpoint = (file->inpoint == AV_NOPTS_VALUE) ? file->file_start_time : file->inpoint; + if (file->duration == AV_NOPTS_VALUE) { + file->duration = cat->avf->duration; + if (file->inpoint != AV_NOPTS_VALUE) + file->duration -= (file->inpoint - file->file_start_time); + if (file->outpoint != AV_NOPTS_VALUE) + file->duration -= cat->avf->duration - (file->outpoint - file->file_start_time); + } + if ((ret = match_streams(avf)) < 0) return ret; if (file->inpoint != AV_NOPTS_VALUE) { @@ -469,14 +477,6 @@ static int open_next_file(AVFormatContext *avf) ConcatContext *cat = avf->priv_data; unsigned fileno = cat->cur_file - cat->files; - if (cat->cur_file->duration == AV_NOPTS_VALUE) { - cat->cur_file->duration = cat->avf->duration; - if (cat->cur_file->inpoint != AV_NOPTS_VALUE) - cat->cur_file->duration -= (cat->cur_file->inpoint - cat->cur_file->file_start_time); - if (cat->cur_file->outpoint != AV_NOPTS_VALUE) - cat->cur_file->duration -= cat->avf->duration - (cat->cur_file->outpoint - cat->cur_file->file_start_time); - } - if (++fileno >= cat->nb_files) { cat->eof = 1; return AVERROR_EOF; -- 2.1.4 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel