[mythtv] FW: [mythtv-users] CVS mythfrontend hangs
uponentering"watch recordings" Problem with framesPlayed?
Shane Shrybman
shrybman at aei.ca
Sun Dec 5 18:23:15 UTC 2004
On Sat, 2004-12-04 at 13:13, Asher Schaffer wrote:
> Any idea when this problem got introduced? I'm reverting to 11/29 CVS
> right now, hope it isn't in there, as right now watching recorded
> shows is unuseable.
>
> ______________________________________________________________________
Ok, I might have narrowed this down a bit but I need help. I think the
problem is with a improperly shared variable "framesPlayed" in
NuppleVideoPlayer.cpp.
bool NuppelVideoPlayer::DoFastForward(void)
{
long long number = fftime - 1;
long long desiredFrame = framesPlayed + number;
if (paused && !editmode)
decoder->setExactSeeks(true);
decoder->DoFastForward(desiredFrame);
decoder->setExactSeeks(exactseeks);
ClearAfterSeek();
return true;
}
I am guessing the problem occurs when the backend is recording and we
try to generate a preview image because framesPlayed is being updated by
the by the recording process and is also being used by
NuppelVideoPlayer::GetScreenGrab calling DoFastForward. This results in
the desiredFrame being waaay to big and looping to death in
DecoderBase::DoFastForward at this point:
while (desiredFrame > last_frame)
{
needflush = true;
exitafterdecoded = true;
GetFrame(-1);
exitafterdecoded = false;
if (!m_positionMap.empty())
last_frame =
m_positionMap[m_positionMap.size()-1].index* keyframedist;
if (ateof)
return false;
}
This is my first experience with C++. So can anyone confirm or deny this
analysis? Possible solutions?
Regards,
Shane
More information about the mythtv-dev
mailing list