Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] vdr-1.3.18 and dxr3 pause mode fixed - why vdr calls PlayVideo likemad in pause? [was Re: vdr 1.3.18 cCondWait::SleepMs]



Luca Olivetti wrote:
Laz wrote:

On Saturday 15 Jan 2005 18:24, Jukka Tastula wrote:

On Friday 14 January 2005 19:39, Luca Olivetti wrote:

If you're using my patch to get the dxr3 working under 1.3.18 try this
additional one.

Now it doesn't hang anymore. It starts fast forwarding instead.


I can confirm this: if I press OK to have the time bar visible, I can see it speeding through at about a minute a second (faster than fast forward does!) although the picture is frozen. It does come out of this mode without hanging, though, so maybe it's an improvement!

;)

Well, sorry, I thought it was working because I tested only for short pauses (1-2 seconds) and it seemed to work in those conditions. The last patch is obviously *very* wrong.

Now, I noticed a stranger thing: if you press the red button, enter a time and the down arrow it will show a still picture, and if you press down again it will go out of pause with no problem.
I think I fixed it: in dxr3device.c, PlayVideo should return -1 instead of 0 in freeze mode, i.e. instead of

if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE &&
m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || cDxr3Interface::Instance().IsExternalReleased())
{
// Why is here so a huge time waster?
//usleep(1000000);
return 0;
}

it should be


if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE &&
m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || cDxr3Interface::Instance().IsExternalReleased())
{
// Why is here so a huge time waster?
//usleep(1000000);
return -1;
}


Since this method in dxr3device.c hasn't changed there's probably something different in vdr that triggered this race condition (the LOCK_THREAD in cDvbPlayer::Play would fail with the return 0 in vdr-1.3.18).
I don't know if PlayAudio should return also -1 under the same condition.
What I really don't understand is why vdr is calling PlayVideo like mad in pause mode (and expecting a -1 as a result), anyway now it works.

Bye

--
- Yo también quiero una Europa libre de Patentes de Software -
- I want a Software Patents Free Europe too! And you? -
---------------------------------------------------------------
EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es

Attachment: signature.asc
Description: OpenPGP digital signature


Home | Main Index | Thread Index