Skip to content
  • Michael Tretter's avatar
    v4l2videodec: do not call streamon while pool is flushing · 35ab185d
    Michael Tretter authored and Nicolas Dufresne's avatar Nicolas Dufresne committed
    gst_v4l2_buffer_pool_flush() executes streamoff for the output, but
    streamoff->streamon for the capture of the decoder.
    gst_v4l2_buffer_pool_streamon() on capture assumes that is able to
    resurrect the buffers from the pool, but acquiring buffers fails if the
    buffer pool is still flushing.
    
    The decoder needs to stop flushing the pools before calling
    gst_v4l2_buffer_pool_flush() to restart the v4l2 device. Otherwise
    starting the decoding thread might fail, because there are no buffers in
    the capture pool.
    
    This fixes a regression that was introduced in 97985a33
    ("v4l2videodec: Add dynamic resolution change support").
    
    https://bugzilla.gnome.org/show_bug.cgi?id=796681
    35ab185d