Skip to content

Commit

Permalink
Fixed flickering playback when transistioning from/to a still frame w…
Browse files Browse the repository at this point in the history
…ith OpenGL playback. The underlying issue (paused video not being unpaused) occured with VDPAU playback too but did not seem to cause any visible issues.
  • Loading branch information
peper03 committed Jul 23, 2013
1 parent 0d49388 commit ea99443
Showing 1 changed file with 3 additions and 8 deletions.
11 changes: 3 additions & 8 deletions mythtv/libs/libmythtv/DVD/mythdvdplayer.cpp
Expand Up @@ -163,10 +163,9 @@ bool MythDVDPlayer::VideoLoop(void)
if (player_ctx->buffer->DVD()->DVDWaitingForPlayer())
{
LOG(VB_PLAYBACK, LOG_INFO, LOC + "Clearing MythTV DVD wait state");
bool inStillFrame = player_ctx->buffer->DVD()->IsInStillFrame();
player_ctx->buffer->DVD()->SkipDVDWaitingForPlayer();
ClearAfterSeek(true);
if (!inStillFrame && videoPaused && !allpaused)
if (videoPaused && !allpaused)
UnpauseVideo();
return !IsErrored();
}
Expand All @@ -178,9 +177,8 @@ bool MythDVDPlayer::VideoLoop(void)
if (player_ctx->buffer->DVD()->IsWaiting())
{
LOG(VB_PLAYBACK, LOG_INFO, LOC + "Clearing DVD wait state");
bool inStillFrame = player_ctx->buffer->DVD()->IsInStillFrame();
player_ctx->buffer->DVD()->WaitSkip();
if (!inStillFrame && videoPaused && !allpaused)
if (videoPaused && !allpaused)
UnpauseVideo();
return !IsErrored();
}
Expand All @@ -196,6 +194,7 @@ bool MythDVDPlayer::VideoLoop(void)
if (!videoPaused)
{
PauseVideo();
dvd_stillframe_showing = true;
return !IsErrored();
}

Expand All @@ -213,10 +212,6 @@ bool MythDVDPlayer::VideoLoop(void)

dvd_stillframe_showing = true;
}
else
{
dvd_stillframe_showing = false;
}
}

// unpause the still frame if more frames become available
Expand Down

0 comments on commit ea99443

Please sign in to comment.