splitmuxsink: Sink does not recover well after skew reset
Submitted by James Morris
I have a pipeline that gets video from RTSP and saves it using splitmuxsink.
Pipeline: rtspsrc ! rtph264depay ! h264parse ! splitmuxsink
Occasionally, if the connection to the video source is not very good I start seeing skew issues. When this happens I see the warning message "rtp delta too big, reset skew." If the jitter buffer decides it is time to reset the skew the splitmuxsink gets confused and stops splitting files at the correct time for a while.
I tracked it down to the call handle_mq_input. From what I can tell before the function will call check_completed_gop it first does a check on the running time with the max running time. In the case of resetting timestamps caused by the skew reset, the running time doesn't seem to update until the frame timestamps catch up to the running time timestamps. Until then no splits are made and the video buffer is held on to and grows. Eventually either the pipeline shuts down or the timestamps catch up and a large file is written.