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 <[email protected]> > --- > 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 [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
