Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixed flickering playback when transistioning from/to a still frame w…
…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.