Marton Balint (12018-12-30): > This allows the underlying files to change their duration on subsequent > avformat context opens. > > An example use case where this matters: > > ffconcat version 1.0 > file dummy.mxf > file dummy.mxf > > ffmpeg -re -stream_loop -1 -i dummy.ffconcat -f sdl2 none > > The user can seamlessly change the input by atomically replacing dummy.mxf. > > v2: Set ConcatFile duration in read_header for all segments with known > durations because from now on we always recalculate the start time in > open_file, and an instant seek could have caused unset ConcatFile durations. > > Signed-off-by: Marton Balint <c...@passwd.hu> > --- > libavformat/concatdec.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-)
I am sorry, but it still feels like a fragile solution, and I think it can leave the context in an inconsistent state. Maybe it works now, but it is a bad surprise left for somebody who wants to extend this demuxer in another way later. Also, I think the duration detected from the file should never override the duration provided by the script. What about this: if the user_duration is set to a special value then each time the file is opened and closed if the duration has changed update the duration update the start time of all subsequent files ? The "user_duration is set to a special value" condition also addresses another concern I have: this feature conflicts with the (net yet implemented) option of keeping the files open, as a LRU-style optimization for when much seeking is expected. Regards, -- Nicolas George
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel