Hi,
there seems to be problem in pausing replays of new recordings (output to FF). 4 out of 5 times vdr freezes when trying to continue the replay. Poll in PlayVideo runs into a timeout and a new write gives EAGAIN. This does not happen with old recordings. Most likely splitting long PES-packets not on frame-boundaries prevents the FF-driver from finding a good start-point after DvbDevice->Freeze(). A rough workaround is attached, but maybe the idea to dump the old remux code was not the best one, as long as the FF and some plugins need PES-output.
Replaying TS with VLC gives lots of TS discontinuities for PID 0 and 132. Attached is a fix.
Regards Johann
On 10.01.2009 21:58, Johann Friedrichs wrote:
there seems to be problem in pausing replays of new recordings (output to FF). 4 out of 5 times vdr freezes when trying to continue the replay. Poll in PlayVideo runs into a timeout and a new write gives EAGAIN. This does not happen with old recordings.
I don't like the whole rewrite of PlayVideo/PlayAudio at all. As already written in the VDR-1.7.2 topic of VDR portal [1], even playback of PES recordings is unstable for me when using the looped PlayVideo functions, no matter what fixes were applied. My vote would be to return to the simple non-looped version of VDR 1.7.1 and before, where partly written buffers timeout after 1s and non-written buffers are rejected instantly.
However, this requires more complex PlayTs**** functions, as they would have to check whether PlayVideo/PlayAudio have read some of the buffers, and re-offer the rest on next call, while not accepting any more data until the whole buffer got accepted by PlayVideo/PlayAudio. (PutTs resets the buffer.)
[1] http://www.vdr-portal.de/board/thread.php?threadid=82622
Cheers,
Udo