summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-03-16 21:10:08 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-03-16 21:10:08 +0100
commit9e4ebba45e4e4cde6b5f07235d5c1b341f94c205 (patch)
treeedb783d676d9dbc1b4fdfb985e77bd69429055d3
parentbc873f71338ba5397c6e0123c3af30eb12db9a8c (diff)
alpha: Protect property values from changes during frame processing
-rw-r--r--gst/alpha/gstalpha.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gst/alpha/gstalpha.c b/gst/alpha/gstalpha.c
index e75a96589..c896fbd4e 100644
--- a/gst/alpha/gstalpha.c
+++ b/gst/alpha/gstalpha.c
@@ -217,6 +217,7 @@ gst_alpha_set_property (GObject * object, guint prop_id,
{
GstAlpha *alpha = GST_ALPHA (object);
+ GST_OBJECT_LOCK (alpha);
switch (prop_id) {
case PROP_METHOD:
alpha->method = g_value_get_enum (value);
@@ -269,6 +270,7 @@ gst_alpha_set_property (GObject * object, guint prop_id,
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
+ GST_OBJECT_UNLOCK (alpha);
}
static void
@@ -798,6 +800,7 @@ gst_alpha_transform (GstBaseTransform * btrans, GstBuffer * in, GstBuffer * out)
if (GST_CLOCK_TIME_IS_VALID (timestamp))
gst_object_sync_values (G_OBJECT (alpha), timestamp);
+ GST_OBJECT_LOCK (alpha);
switch (alpha->method) {
case ALPHA_METHOD_SET:
if (alpha->ayuv) {
@@ -822,6 +825,7 @@ gst_alpha_transform (GstBaseTransform * btrans, GstBuffer * in, GstBuffer * out)
default:
break;
}
+ GST_OBJECT_UNLOCK (alpha);
return GST_FLOW_OK;
}