Browse Source

vout_vsync: fix picture release during idle state

Originally implemented by Maxime Chapelet with a timeout.

Fixup for 966f5f41c51a7b49869854477364be551640bdd2
Alexandre Janniaux 4 years ago
parent
commit
d533741ea4
  1. 17
      src/video_output/vout_vsync.c

17
src/video_output/vout_vsync.c

@ -241,7 +241,24 @@ static void *StateMachine(void *object)
case VOUT_STATE_IDLE:
while (priv->state.current == VOUT_STATE_IDLE &&
!priv->state.terminated)
{
if (priv->displayed.next == NULL)
{
vlc_cond_wait(&priv->state.cond_update, &priv->state.lock);
continue;
}
vlc_tick_t system_now = vlc_tick_now();
vlc_tick_t deadline =
vlc_clock_ConvertToSystem(priv->clock, system_now,
priv->displayed.next->date, priv->rate);
if (deadline < system_now)
{
priv->state.current = VOUT_STATE_CONTROL;
break;
}
vlc_cond_timedwait(&priv->state.cond_update, &priv->state.lock, deadline);
}
break;
case VOUT_STATE_CONTROL: {

Loading…
Cancel
Save