On Fri, 13 Nov 2015, Nicolas George wrote:

Le decadi 20 brumaire, an CCXXIV, Marton Balint a écrit :
Signed-off-by: Marton Balint <c...@passwd.hu>
---
 libavformat/concatdec.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
index 0180a7e..560aa64 100644
--- a/libavformat/concatdec.c
+++ b/libavformat/concatdec.c
@@ -316,6 +316,8 @@ 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->outpoint != AV_NOPTS_VALUE)
+        file->duration = file->outpoint - file->file_inpoint;

Is it not already done? In read_header():

       if (cat->files[i].duration == AV_NOPTS_VALUE) {
           if (cat->files[i].inpoint == AV_NOPTS_VALUE || 
cat->files[i].outpoint == AV_NOPTS_VALUE)
               break;
           cat->files[i].duration = cat->files[i].outpoint - 
cat->files[i].inpoint;
       }

is done for every file, it seems it does exactly the same thing.

In read_header, duration is only set if both inpoint and outpoint is set by the user.

In open_file duration is set if outpoint is set by the user which is the superset of the first case.

Regards,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to