• Thomas Guillem's avatar
    decoder: fix race in spu_new_buffer · 90fc0913
    Thomas Guillem authored
    There is a race when starting video with subtitles at a given position (via
    --start-time).
    
    If all decoders are flushed early, the video decoder may not have created the
    Vout via the decoder_NewPicture call. In that case, spu_new_buffer will be
    blocking for 6 seconds. Indeed, spu_new_buffer can block for maximum 6 seconds
    when it's waiting for a Vout.
    
    To solve this race, abort spu_new_buffer if decoder is flushing.
    
    How to reproduce the race condition:
    ./vlc --start-time 3600 <video_with_subtitles>
    Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
    90fc0913
decoder.c 64.8 KB