The pvr350-Plugin uses the following code:
void cPvr350Device::TrickSpeed(int Speed)
{
printf("Set speed %d\n",Speed);
m_RingBuffer->Clear();
SetPlayMode(m_PlayMode);
}
With this code it makes no matter if the vdr-setup is set to Multispeed mode or
not -it always provides one (pretty fast) speed in fast Forward mode. As no
ivtv ioctl is used, I suppose the speed is done by vdr itself and not using the
ivtv driver.
I "borrowed" some code and changed it to this:
void cPvr350Device::TrickSpeed(int Speed)
{
printf("Set speed %d\n",Speed);
struct ivtv_speed speed;
int ret;
m_RingBuffer->Clear();
memset(&speed, 0, sizeof(speed));
speed.fr_mask = 2;
switch (Speed) {
case 1 : speed.scale = 0; break;
case 3 : speed.scale = 30 / (24 / 3); break;
case 6 : speed.scale = 30 / (24 / 6); break;
}
if ( (ret = ioctl(fd_out,IVTV_IOC_S_SPEED, &speed)) < 0 ) {
printf("speed %d\n",ret);
SetPlayMode(m_PlayMode);
}
}
The first press of the left button during playback results in the same speed as
with the old code. But if I increase the speed and then return to a lower
speed, it work as expected. So I have three different speeds, but the initial
speed seems to be always the highest speed.
Could somebody help me? Maybe it is even possible to get three speeds without
using the ivtv ioctls?
--
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
_______________________________________________
vdr mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr