ffmpeg | branch: master | Marton Balint <[email protected]> | Sat Jul  4 23:34:17 
2015 +0200| [12d82004c51f46464a032e9081879945cf495a25] | committer: Michael 
Niedermayer

concatdec: store eof condition in context

This is needed later for outpoint support which may leave the last file in a
not-eof state.

Reviewed-by: Nicolas George <[email protected]>
Signed-off-by: Marton Balint <[email protected]>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=12d82004c51f46464a032e9081879945cf495a25
---

 libavformat/concatdec.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
index 685b157..a34e1a0 100644
--- a/libavformat/concatdec.c
+++ b/libavformat/concatdec.c
@@ -57,6 +57,7 @@ typedef struct {
     AVFormatContext *avf;
     int safe;
     int seekable;
+    int eof;
     ConcatMatchMode stream_match_mode;
     unsigned auto_convert;
 } ConcatContext;
@@ -447,8 +448,10 @@ static int open_next_file(AVFormatContext *avf)
             cat->cur_file->duration -= (cat->cur_file->inpoint - 
cat->cur_file->file_start_time);
     }
 
-    if (++fileno >= cat->nb_files)
+    if (++fileno >= cat->nb_files) {
+        cat->eof = 1;
         return AVERROR_EOF;
+    }
     return open_file(avf, fileno);
 }
 
@@ -500,6 +503,9 @@ static int concat_read_packet(AVFormatContext *avf, 
AVPacket *pkt)
     ConcatStream *cs;
     AVStream *st;
 
+    if (cat->eof)
+        return AVERROR_EOF;
+
     if (!cat->avf)
         return AVERROR(EIO);
 
@@ -631,6 +637,7 @@ static int concat_seek(AVFormatContext *avf, int stream,
         cat->cur_file = cur_file_saved;
     } else {
         avformat_close_input(&cur_avf_saved);
+        cat->eof = 0;
     }
     return ret;
 }

_______________________________________________
ffmpeg-cvslog mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

Reply via email to