summaryrefslogtreecommitdiffstats
path: root/gst/rtsp/gstrtspsrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/rtsp/gstrtspsrc.c')
-rw-r--r--gst/rtsp/gstrtspsrc.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 9e9aa1a5..cb27035c 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -288,10 +288,11 @@ gst_rtspsrc_init (GstRTSPSrc * src, GstRTSPSrcClass * g_class)
src->location = g_strdup (DEFAULT_LOCATION);
src->url = NULL;
- /* install WMS extension by default */
- src->extension = rtsp_ext_wms_get_context ();
#ifdef WITH_EXT_REAL
src->extension = rtsp_ext_real_get_context ();
+#else
+ /* install WMS extension by default */
+ src->extension = rtsp_ext_wms_get_context ();
#endif
src->extension->src = (gpointer) src;
}
@@ -311,6 +312,14 @@ gst_rtspsrc_finalize (GObject * object)
g_free (rtspsrc->content_base);
rtsp_url_free (rtspsrc->url);
+ if (rtspsrc->extension) {
+#ifdef WITH_EXT_REAL
+ rtsp_ext_real_free_context (rtspsrc->extension);
+#else
+ rtsp_ext_wms_free_context (rtspsrc->extension);
+#endif
+ }
+
G_OBJECT_CLASS (parent_class)->finalize (object);
}