GStreamer open-source multimedia framework core library

Forked from GStreamer / gstreamer

  • Alicia Boya García's avatar
    downloadbuffer: Check for flush after seek · b50abd9f
    Alicia Boya García authored
    In gst_download_buffer_wait_for_data(), when a seek is made with
    perform_seek_to_offset() the `qlock` is released temporarily. Therefore,
    the flushing condition can be set during this period and should be
    checked.
    
    This was not being checked before, causing occasional deadlocks when
    GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() was called.
    
    GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() assumes that the caller has already
    checked that we're not flushing before, since this is done when
    acquiring the lock; so if we release it temporarily somewhere, we need
    to check for flush again.
    
    Without that check, the function would keep waiting for the condition
    variable to be notified before checking for flushing condition again,
    and that may very well never happen. This was reproduced when during pad
    deactivation when running WebKit in gdb.
    b50abd9f
Name
Last commit
Last update
common @ 59cb6781 Loading commit data...
data Loading commit data...
docs Loading commit data...
gst Loading commit data...
hooks Loading commit data...
libs Loading commit data...
m4 Loading commit data...
pkgconfig Loading commit data...
plugins Loading commit data...
po Loading commit data...
scripts Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.gitmodules Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README Loading commit data...
README.static-linking Loading commit data...
RELEASE Loading commit data...
TODO Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
gst-element-check-1.0.m4 Loading commit data...
gstreamer.doap Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...
stamp.h.in Loading commit data...