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:45 +0200
commitd75068d6cfb48ce10c34b0b0b2f93452fadf4840 (patch)
tree500cf70b543a6f7819763233d28443f200c675bd
parente71d192e6d4267c87b03453406c85a0cdffe83b1 (diff)
downloadgstreamer-d75068d6cfb48ce10c34b0b0b2f93452fadf4840.tar.gz
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 dd55e32b38..eb0918c099 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -2628,10 +2628,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;
+ }
}
}