[gst-cvs] gst-plugins-good: [MOVED FROM BAD 04/57] gst/flv/gstflvdemux.c: Fix locking and refcounting on the index.
Sebastian Dröge
slomo at kemper.freedesktop.org
Tue May 12 12:57:55 PDT 2009
Module: gst-plugins-good
Branch: master
Commit: d83e2e92921e0048b83d967ecaccf19186478842
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=d83e2e92921e0048b83d967ecaccf19186478842
Author: Wim Taymans <wim.taymans at gmail.com>
Date: Tue Aug 14 14:56:20 2007 +0000
[MOVED FROM BAD 04/57] gst/flv/gstflvdemux.c: Fix locking and refcounting on the index.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_set_index),
(gst_flv_demux_get_index):
Fix locking and refcounting on the index.
---
gst/flv/gstflvdemux.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c
index 339fc0d..3f727f1 100644
--- a/gst/flv/gstflvdemux.c
+++ b/gst/flv/gstflvdemux.c
@@ -911,7 +911,11 @@ gst_flv_demux_set_index (GstElement * element, GstIndex * index)
{
GstFLVDemux *demux = GST_FLV_DEMUX (element);
+ GST_OBJECT_LOCK (demux);
+ if (demux->index)
+ gst_object_unref (demux->index);
demux->index = gst_object_ref (index);
+ GST_OBJECT_UNLOCK (demux);
gst_index_get_writer_id (index, GST_OBJECT (element), &demux->index_id);
}
@@ -919,9 +923,16 @@ gst_flv_demux_set_index (GstElement * element, GstIndex * index)
static GstIndex *
gst_flv_demux_get_index (GstElement * element)
{
+ GstIndex *result = NULL;
+
GstFLVDemux *demux = GST_FLV_DEMUX (element);
- return demux->index;
+ GST_OBJECT_LOCK (demux);
+ if (demux->index)
+ result = gst_object_ref (demux->index);
+ GST_OBJECT_UNLOCK (demux);
+
+ return result;
}
static void
More information about the Gstreamer-commits
mailing list