summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-04-20 11:59:02 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-04-20 12:01:01 +0200
commit63c17280408410d799e1c2f2ed49c5ab04cc80ae (patch)
tree11d945607a1e89974a35076ad451ce0f476f515d
parent094fdfee7ec31019a54beb347457435cf9f62a0c (diff)
basesrc: Make sure to always hold the LIVE_LOCK when going to the flushing label
https://bugzilla.gnome.org/show_bug.cgi?id=728596
-rw-r--r--libs/gst/base/gstbasesrc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index 9f2e52cfc3..fc5a3af3b6 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -2684,10 +2684,12 @@ gst_base_src_loop (GstPad * pad)
if (gst_pad_check_reconfigure (pad)) {
if (!gst_base_src_negotiate (src)) {
gst_pad_mark_reconfigure (pad);
- if (GST_PAD_IS_FLUSHING (pad))
+ if (GST_PAD_IS_FLUSHING (pad)) {
+ GST_LIVE_LOCK (src);
goto flushing;
- else
+ } else {
goto negotiate_failed;
+ }
}
}