From a80ccecd5b80232504cca0e36fd3454a8171f52d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 8 Nov 2005 12:33:09 +0000 Subject: [PATCH] gst/base/gstbasetransform.c: Hold STREAM_LOCK while pushing newsegment or tag events as well. Original commit message from CVS: * gst/base/gstbasetransform.c: (gst_base_transform_event): Hold STREAM_LOCK while pushing newsegment or tag events as well. --- ChangeLog | 5 +++++ gst/base/gstbasetransform.c | 6 +++++- libs/gst/base/gstbasetransform.c | 6 +++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4002959..2b6cf26 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-11-08 Tim-Philipp Müller + + * gst/base/gstbasetransform.c: (gst_base_transform_event): + Hold STREAM_LOCK while pushing newsegment or tag events as well. + 2005-11-08 Wim Taymans * gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty), diff --git a/gst/base/gstbasetransform.c b/gst/base/gstbasetransform.c index 29e03da..0bc1a08 100644 --- a/gst/base/gstbasetransform.c +++ b/gst/base/gstbasetransform.c @@ -1027,6 +1027,10 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) GST_STREAM_LOCK (pad); unlock = TRUE; break; + case GST_EVENT_TAG: + GST_STREAM_LOCK (pad); + unlock = TRUE; + break; case GST_EVENT_NEWSEGMENT: { GstFormat format; @@ -1035,6 +1039,7 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) gboolean update; GST_STREAM_LOCK (pad); + unlock = TRUE; gst_event_parse_newsegment (event, &update, &rate, &format, &start, &stop, &time); if (format == GST_FORMAT_TIME) { @@ -1050,7 +1055,6 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT in non-time format, ignoring"); } - GST_STREAM_UNLOCK (pad); break; } default: diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c index 29e03da..0bc1a08 100644 --- a/libs/gst/base/gstbasetransform.c +++ b/libs/gst/base/gstbasetransform.c @@ -1027,6 +1027,10 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) GST_STREAM_LOCK (pad); unlock = TRUE; break; + case GST_EVENT_TAG: + GST_STREAM_LOCK (pad); + unlock = TRUE; + break; case GST_EVENT_NEWSEGMENT: { GstFormat format; @@ -1035,6 +1039,7 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) gboolean update; GST_STREAM_LOCK (pad); + unlock = TRUE; gst_event_parse_newsegment (event, &update, &rate, &format, &start, &stop, &time); if (format == GST_FORMAT_TIME) { @@ -1050,7 +1055,6 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT in non-time format, ignoring"); } - GST_STREAM_UNLOCK (pad); break; } default: -- 2.7.4