mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 20:42:30 +00:00
rtspreal: add finalize function so we can free streams and rulebook
Fix memory leak in Real RTSP component (#608533).
This commit is contained in:
parent
4cb5f32308
commit
cd6b16734e
1 changed files with 28 additions and 0 deletions
|
@ -669,6 +669,7 @@ reset:
|
||||||
|
|
||||||
static void gst_rtsp_real_extension_init (gpointer g_iface,
|
static void gst_rtsp_real_extension_init (gpointer g_iface,
|
||||||
gpointer iface_data);
|
gpointer iface_data);
|
||||||
|
static void gst_rtsp_real_finalize (GObject * obj);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_do_init (GType rtspreal_type)
|
_do_init (GType rtspreal_type)
|
||||||
|
@ -697,6 +698,10 @@ gst_rtsp_real_base_init (gpointer klass)
|
||||||
static void
|
static void
|
||||||
gst_rtsp_real_class_init (GstRTSPRealClass * g_class)
|
gst_rtsp_real_class_init (GstRTSPRealClass * g_class)
|
||||||
{
|
{
|
||||||
|
GObjectClass *gobject_class = (GObjectClass *) g_class;
|
||||||
|
|
||||||
|
gobject_class->finalize = gst_rtsp_real_finalize;
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_INIT (rtspreal_debug, "rtspreal", 0,
|
GST_DEBUG_CATEGORY_INIT (rtspreal_debug, "rtspreal", 0,
|
||||||
"RealMedia RTSP extension");
|
"RealMedia RTSP extension");
|
||||||
}
|
}
|
||||||
|
@ -707,6 +712,29 @@ gst_rtsp_real_init (GstRTSPReal * rtspreal, GstRTSPRealClass * klass)
|
||||||
rtspreal->isreal = FALSE;
|
rtspreal->isreal = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_rtsp_stream_free (GstRTSPRealStream * stream)
|
||||||
|
{
|
||||||
|
g_free (stream->stream_name);
|
||||||
|
g_free (stream->mime_type);
|
||||||
|
gst_asm_rule_book_free (stream->rulebook);
|
||||||
|
g_free (stream->type_specific_data);
|
||||||
|
|
||||||
|
g_free (stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_rtsp_real_finalize (GObject * obj)
|
||||||
|
{
|
||||||
|
GstRTSPReal *r = (GstRTSPReal *) obj;
|
||||||
|
|
||||||
|
g_list_foreach (r->streams, (GFunc) gst_rtsp_stream_free, NULL);
|
||||||
|
g_list_free (r->streams);
|
||||||
|
g_free (r->rules);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (parent_class)->finalize (obj);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_rtsp_real_extension_init (gpointer g_iface, gpointer iface_data)
|
gst_rtsp_real_extension_init (gpointer g_iface, gpointer iface_data)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue