El Sábado, 1 de Abril de 2006 21:49, Reinhard Nissl escribió:
Hi,
Jose Alberto Reguero wrote:
>> Is there a way to wait until having data ready when starting xine? >> (vdr-xine is not in mode LiveTV with LiveBuffer). The replay is a >> slide show without sound. If pause and resume xine the problem is >> gone. Its only trouble when starting xine. Changing the channel >> solves the problem with >> Frameswait(LiveBuffer )= 8. With Frameswait(LiveBuffer) = 0 when >> changing the chanel, or starting xine the replay is a slide show >> without sound. > > Hhm, the buffer, which is established when switching the channel, is > also established when xine connects to vdr-xine. This is the output > of my system: > > vdr-xine: Client connecting ... > frame: (0, 0)-(720, 576), zoom: (1.00, 1.00) > vdr-xine: Client connected! > [avAVMM]buffered 8.7 frames (v:13.7, a:8.7) > > What's your output? > Does it help to increase the buffer size?
I change in SetPlayMode:
if (m_settings.LiveTV()) { ::fprintf(stderr, "LiveTV\n"); softStartTrigger = sstNormal; } else { np = true; ::fprintf(stderr, "No LiveTV\n"); }
and my output is:
............ SetAudioChannelDevice: 0 SetVolumeDevice: 0 status: volume=0 mute=1 frame: (0, 0)-(-1, -1), zoom: (1,00, 1,00) SetAudioChannelDevice: 0 SetPlayMode: 1 No LiveTV SetDigitalAudioDevice: 0 SetAudioChannelDevice: 0 vdr-xine: Client connected! read(4) returned 0, error 0: Conseguido vdr-xine: Client disconnected!
I increase the buffer size to the maximun and don't help.
Thanks, that's valuable output!
Do you use a FF card?
I have only budget cards and don't see this issue.
I don't have a FF card. Only DVB-T budget cards.
Which VDR version are you using?
I'm using 1.3.44.
I am using vdr 1.3.45, vdr-xine 0.7.8 and LiveBuffer 0.1.7 but I have the same problem with vdr 1.3.44. I also try vdr-xine with and without network. I find a solution putting in xineDevice.c cXineDevice::OnClientConnect
cLiveRecorderControl::GetLiveRecorder()->Resume();
So, this is a matter of LiveBuffer patch. But I don't understand why it was working when switching channels.
It only work for me switching channels with setup option Frameswait(LiveBuffer )= 8
From the README.LiveBuffer Frameswait: The number of frames, which have to be received, until the replay of the livebuffer starts Jose Alberto
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?
Bye.