Postby sfed » 08 Feb 2008 16:57
In response to my own question above, I have added an option/parameter to the input module in vlc that allows the video to be paused on the last frame automatically without the video player exiting (requires modification of the source code). It can be applied globally or per-stream and basically just causes the stream state to PAUSE rather than EOF when the stream terminates. This is the same result as pausing the input during normal playback. The flag one-shots so that when the stream is played/resumed, the normal EOF processing is accomplished. It seems to be working properly, and was not difficult too difficult to accomplish (other than the initial pain of getting VLC to compile on Windows under Cygwin...not really relevant here as this change is not Windows-specific). It also does not add any processing time to the main input loop so it seems innocuous, and is a nice feature where it is desired for a video to remain on the last frame when it ends. I am starting to look at the issue of frame pausing to see if there is any possible way of accomplishing greater control over where frame freezes occur in the video processing chain. The optimal solution would be to impose pause functionality further down the decoding chain and cascade the mode back up to the input processing to pause the data flow at the same time. Currently lag in pause at face value appears to be caused by the input module having already passed an indeterminate amount of data on to subsequent stream processing and that cannot be recalled once gated out.