flvdemux plugin tampers with the timestamps
Submitted by Joris Guisson
Link to original bug (#780588)
Description
Created attachment 348793
temporary workaround
The flvdemux plugin messes with the timestamps, when it sees a large enough gap between two frames, it adjusts the timestamps of all the following packages, to make it appear that the gap never happened.
This is extremely problematic for the audiobasesink, because that one uses the timestamps to determine where to write the audio data in the ring buffer. And if the audio data is before the current read pointer, it just silently drops the data.
So if you have a situation where something is publishing an audio stream on a media server, and you listen to it. If the publisher has a network hickup, which causes a large enough gap in the timestamps, suddenly the flvdemuxer, will pretend that nothing happened, and the audio output stops.
I have applied the attached patch to work around this problem.
So the question is, why is this behavior needed in the flvdemux plugin ? Because it is clearly not compatible with audiobasesink.
Patch 348793, "temporary workaround":
flvdemux.patch
Version: 1.x