diff --git a/gst/elements/gstfilesrc.c b/gst/elements/gstfilesrc.c index 96589e1718..d3288d6b36 100644 --- a/gst/elements/gstfilesrc.c +++ b/gst/elements/gstfilesrc.c @@ -370,6 +370,7 @@ gst_filesrc_free_parent_mmap (GstBuffer *buf) GST_BUFFER_DATA (buf) = NULL; + g_object_unref (src); gst_buffer_default_free (buf); } @@ -414,6 +415,7 @@ gst_filesrc_map_region (GstFileSrc *src, off_t offset, size_t size) GST_BUFFER_OFFSET (buf) = offset; GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE; GST_BUFFER_POOL_PRIVATE (buf) = src; + g_object_ref (src); GST_BUFFER_FREE_FUNC (buf) = (GstDataFreeFunction) gst_filesrc_free_parent_mmap; g_mutex_lock (src->map_regions_lock); diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c index 96589e1718..d3288d6b36 100644 --- a/plugins/elements/gstfilesrc.c +++ b/plugins/elements/gstfilesrc.c @@ -370,6 +370,7 @@ gst_filesrc_free_parent_mmap (GstBuffer *buf) GST_BUFFER_DATA (buf) = NULL; + g_object_unref (src); gst_buffer_default_free (buf); } @@ -414,6 +415,7 @@ gst_filesrc_map_region (GstFileSrc *src, off_t offset, size_t size) GST_BUFFER_OFFSET (buf) = offset; GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE; GST_BUFFER_POOL_PRIVATE (buf) = src; + g_object_ref (src); GST_BUFFER_FREE_FUNC (buf) = (GstDataFreeFunction) gst_filesrc_free_parent_mmap; g_mutex_lock (src->map_regions_lock);