Hi,
Jose Alberto Reguero wrote:
So, this is a matter of LiveBuffer patch. But I don't understand why it was working when switching channels.
Anyway, to fix it properly, the following line in cXineDevice::SetPlayMode() most be adapted to LiveBuffer:
m_settings.SelectReplayPrebufferMode(!Transferring());
For vanilla VDR, Transferring() reports the existence of a transfer thread which means, VDR sends Live TV to vdr-xine.
So, how could I detect Live TV in the case of a VDR with LiveBuffer patch?
Is there a way to automatically detect that the LiveBuffer patch was applied to VDR?
In config.h LIVEBUFFERVERSION is defined, when livebuffer has been applied: #define LIVEBUFFERVERSION 106
When the livebuffer is active (replaying) cTransferControl::ReceiverDevice() returns the receiving device. So you could use this for detecting Live TV.
But I think it would be better to adapt the livebuffer patch so that cDevice::Transferring() returns also true when a livebuffer recording is played. (Or does something argue against it?)
I try to force Live TV in vdr-xine for LiveBuffer to solve the problem. View channels work ok. But when moving back or forward into the LiveBuffer don't work very well.
Hhm, it seems that it is not that easy to find a proper solution. Maybe cDevice::Transferring() could be patched to return true when LiveBuffer's reader and writer are almost at the same position (delta ~ 8 frames) and to return false otherwise.
Bye.