mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 09:40:37 +00:00
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.
This commit is contained in:
parent
170c01e6c1
commit
a2dbc1182c
2 changed files with 18 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2007-08-14 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
|
* gst/flv/gstflvdemux.c: (gst_flv_demux_set_index),
|
||||||
|
(gst_flv_demux_get_index):
|
||||||
|
Fix locking and refcounting on the index.
|
||||||
|
|
||||||
2007-08-14 Julien MOUTTE <julien@moutte.net>
|
2007-08-14 Julien MOUTTE <julien@moutte.net>
|
||||||
|
|
||||||
* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
|
* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
|
||||||
|
|
|
@ -911,7 +911,11 @@ gst_flv_demux_set_index (GstElement * element, GstIndex * 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);
|
||||||
}
|
}
|
||||||
|
@ -919,9 +923,16 @@ gst_flv_demux_set_index (GstElement * element, GstIndex * index)
|
||||||
static GstIndex *
|
static GstIndex *
|
||||||
gst_flv_demux_get_index (GstElement * element)
|
gst_flv_demux_get_index (GstElement * element)
|
||||||
{
|
{
|
||||||
|
GstIndex *result = NULL;
|
||||||
|
|
||||||
GstFLVDemux *demux = GST_FLV_DEMUX (element);
|
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
|
static void
|
||||||
|
|
Loading…
Reference in a new issue