Mailing List archive

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

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



On Monday 17 Jan 2005 00:25, Luca Olivetti wrote:

{snippage}

> 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.

Works a treat!

Cheers,

Laz




Home | Main Index | Thread Index