[Bug 794149] giosrc: regression with ssh:// protocol

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Mar 7 10:44:24 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=794149

Sebastian Dröge (slomo) <slomo at coaxion.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nicolas at ndufresne.ca,
                   |                            |slomo at coaxion.net
          Component|gst-plugins-base            |gstreamer (core)
           See Also|                            |https://bugzilla.gnome.org/
                   |                            |show_bug.cgi?id=783301

--- Comment #1 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
This is caused by

commit 523de1a9dc7b7f79c78120bed15c364336f067cb
Author: Nicolas Dufresne <nicolas.dufresne at collabora.com>
Date:   Thu Jun 1 10:36:26 2017 -0400

    basesrc: Don't hold LIVE_LOCK in create/alloc/fill

    Holding this lock on live source prevents the source from changing
    the caps in ::create() without risking a deadlock. This has consequences
    as the LIVE_LOCK was replacing the STREAM_LOCK in many situation. As a
    side effect:

    - We no longer need to unlock when doing play/pause as the LIVE_LOCK
      isn't held. We then let the create() call finish, but will block if
      the state have changed meanwhile. This has the benefit that
      wait_preroll() calls in subclass is no longer needed.
    - We no longer need to change the state to unlock, simplifying the
      set_flushing() interface
    - We need different handling for EOS depending if we are in push or pull
      mode.

    This patch also document the locking of each private class member and
    the locking order.

    https://bugzilla.gnome.org/show_bug.cgi?id=783301



What happens is that unlock() is called, and then afterwards start() is called
without unlock_stop() first. So the cancellable is still cancelled, and all the
GIO operations in start() just error out because of that.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list