appsrc: Actually store any URI that is set and return this when asked for the URI

This commit is contained in:
Sebastian Dröge 2012-06-21 11:12:11 +01:00
parent fcc1e1f457
commit df63268e5a

View File

@ -116,6 +116,7 @@ struct _GstAppSrcPrivate
guint64 max_bytes; guint64 max_bytes;
GstFormat format; GstFormat format;
gboolean block; gboolean block;
gchar *uri;
gboolean flushing; gboolean flushing;
gboolean started; gboolean started;
@ -551,6 +552,8 @@ gst_app_src_finalize (GObject * obj)
g_cond_free (priv->cond); g_cond_free (priv->cond);
g_queue_free (priv->queue); g_queue_free (priv->queue);
g_free (priv->uri);
G_OBJECT_CLASS (parent_class)->finalize (obj); G_OBJECT_CLASS (parent_class)->finalize (obj);
} }
@ -1649,14 +1652,20 @@ gst_app_src_uri_get_protocols (GType type)
static gchar * static gchar *
gst_app_src_uri_get_uri (GstURIHandler * handler) gst_app_src_uri_get_uri (GstURIHandler * handler)
{ {
return g_strdup ("appsrc"); GstAppSrc *appsrc = GST_APP_SRC (handler);
return appsrc->priv->uri ? g_strdup (appsrc->priv->uri) : NULL;
} }
static gboolean static gboolean
gst_app_src_uri_set_uri (GstURIHandler * handler, const gchar * uri, gst_app_src_uri_set_uri (GstURIHandler * handler, const gchar * uri,
GError ** error) GError ** error)
{ {
/* GstURIHandler checks the protocol for us */ GstAppSrc *appsrc = GST_APP_SRC (handler);
g_free (appsrc->priv->uri);
appsrc->priv->uri = uri ? g_strdup (uri) : NULL;
return TRUE; return TRUE;
} }