On Sat, 18 Mar 2017, Steven Liu wrote:
when use stream_loop to control the loop times, the seekable is set to 0 default, and must set duration or inpoint and outpoint into the concat list, now use this option can support use stream_loop to control the loop times of the concat list
I am not sure I understand the use case. But how can you support seek in a file, which you do not know how long is? You simply won't know which segment you want to seek in.
The only thing you might support is seeking into 0. Nothing else, so all other seek commands must fail. But you don't need a separate option to support that, you simply can add that feature.
Regards, Marton
Signed-off-by: Steven Liu <l...@chinaffmpeg.org> --- doc/demuxers.texi | 5 +++++ libavformat/concatdec.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 29a23d4..eb0e67d 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -207,6 +207,11 @@ Currently, the only conversion is adding the h264_mp4toannexb bitstream filter to H.264 streams in MP4 format. This is necessary in particular if there are resolution changes. +@item concat_seekable +If set to 1, the seek operation will be enabled, user can use stream_loop to control +loop times. +The default is 0. + @item segment_time_metadata If set to 1, every packet will contain the @var{lavf.concat.start_time} and the @var{lavf.concat.duration} packet metadata values which are the start_time and diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index 8649916..0a61af1 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -493,6 +493,9 @@ static int concat_read_header(AVFormatContext *avf) cat->seekable = 1; } + if (cat->seekable) { + cat->seekable = 1; + } cat->stream_match_mode = avf->nb_streams ? MATCH_EXACT_ID : MATCH_ONE_TO_ONE; if ((ret = open_file(avf, 0)) < 0) @@ -771,6 +774,8 @@ static const AVOption options[] = { OFFSET(auto_convert), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, DEC }, { "segment_time_metadata", "output file segment start time and duration as packet metadata", OFFSET(segment_time_metadata), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DEC }, + { "concat_seekable", "set seekable status of concat list", + OFFSET(seekable), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DEC }, { NULL } }; -- 2.10.1 (Apple Git-78)
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel