[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