Skip to content
  • Romain Vimont's avatar
    vout: fix low framerate stuttering · 7c351860
    Romain Vimont authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
    
    
    In ThreadDisplayPicture(), when "refresh" was true, the output parameter
    deadline was not written and the function returned a non-zero value.
    
    As a consequence, in video_output.c:Thread(), the next loop iteration
    waited for the max deadline (100ms). When the following frame target
    date was before this deadline, the video was stuttering.
    
    To avoid the problem, write the deadline before returning from
    ThreadDisplayPicture(), so that Thread() does not wait more than
    expected.
    
    Since an existing frame is refreshed only every 80ms
    (VOUT_REDISPLAY_DELAY), this happened only on low framerate videos
    (<12.5 fps). Otherwise, "refresh" was always false and the problem never
    occurred.
    
    Signed-off-by: default avatarThomas Guillem <thomas@gllm.fr>
    (cherry picked from commit 6c5eabe7
    
    )
    Signed-off-by: default avatarHugo Beauzée-Luyssen <hugo@beauzee.fr>
    7c351860