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.
{
GstFLVDemux *demux = GST_FLV_DEMUX (element);
{
GstFLVDemux *demux = GST_FLV_DEMUX (element);
+ GST_OBJECT_LOCK (demux);
+ if (demux->index)
+ gst_object_unref (demux->index);
demux->index = gst_object_ref (index);
demux->index = gst_object_ref (index);
+ GST_OBJECT_UNLOCK (demux);
gst_index_get_writer_id (index, GST_OBJECT (element), &demux->index_id);
}
gst_index_get_writer_id (index, GST_OBJECT (element), &demux->index_id);
}
static GstIndex *
gst_flv_demux_get_index (GstElement * element)
{
static GstIndex *
gst_flv_demux_get_index (GstElement * element)
{
+ GstIndex *result = NULL;
+
GstFLVDemux *demux = GST_FLV_DEMUX (element);
GstFLVDemux *demux = GST_FLV_DEMUX (element);
+ GST_OBJECT_LOCK (demux);
+ if (demux->index)
+ result = gst_object_ref (demux->index);
+ GST_OBJECT_UNLOCK (demux);
+
+ return result;