summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gconf/gstreamer.schemas11
-rw-r--r--gst-libs/gst/gconf/gconf.c104
-rw-r--r--gst-libs/gst/gconf/gconf.h6
3 files changed, 106 insertions, 15 deletions
diff --git a/gconf/gstreamer.schemas b/gconf/gstreamer.schemas
index e1a2ebb17..0ff962162 100644
--- a/gconf/gstreamer.schemas
+++ b/gconf/gstreamer.schemas
@@ -44,5 +44,16 @@
<long>GStreamer can record video from any number of input elements. Some possible choices are v4lsrc and videotestsrc. The video source can be a partial pipeline instead of just one element.</long>
</locale>
</schema>
+ <schema>
+ <key>/schemas/system/gstreamer/default/visualisation</key>
+ <applyto>/system/gstreamer/default/visualisation</applyto>
+ <owner>gstreamer</owner>
+ <type>string</type>
+ <default>goom</default>
+ <locale name="C">
+ <short>default GStreamer visualisation plugin</short>
+ <long>GStreamer can put visualisation plugins in a pipeline to transform audio stream in video frames. Default is goom but more visualisation plugins will be ported soon. The visualisation plugin can be a partial pipeline instead of just one element.</long>
+ </locale>
+ </schema>
</schemalist>
</gconfschemafile>
diff --git a/gst-libs/gst/gconf/gconf.c b/gst-libs/gst/gconf/gconf.c
index 395740321..494ca9f1e 100644
--- a/gst-libs/gst/gconf/gconf.c
+++ b/gst-libs/gst/gconf/gconf.c
@@ -57,6 +57,14 @@ gst_bin_find_unconnected_pad (GstBin *bin, GstPadDirection direction)
/* external functions */
+/**
+ * gst_gconf_get_string:
+ * @key: a #gchar corresponding to the key you want to get.
+ *
+ * Get GConf key @key's string value.
+ *
+ * Returns: a #gchar string containing @key's value.
+ */
gchar *
gst_gconf_get_string (const gchar *key)
{
@@ -77,6 +85,13 @@ gst_gconf_get_string (const gchar *key)
return value;
}
+/**
+ * gst_gconf_set_string:
+ * @key: a #gchar corresponding to the key you want to set.
+ * @value: a #gchar containing key value.
+ *
+ * Set GConf key @key to string value @value.
+ */
void
gst_gconf_set_string (const gchar *key, const gchar *value)
{
@@ -92,8 +107,14 @@ gst_gconf_set_string (const gchar *key, const gchar *value)
g_free (full_key);
}
-/* this function renders the given description to a bin,
- * and ghosts at most one unconnected src pad and one unconnected sink pad */
+/**
+ * gst_gconf_render_bin_from_description:
+ * @description: a #gchar string describing the bin.
+ *
+ * Render bin from description @description.
+ *
+ * Returns: a #GstElement containing the rendered bin.
+ */
GstElement *
gst_gconf_render_bin_from_description (const gchar *description)
{
@@ -124,8 +145,14 @@ gst_gconf_render_bin_from_description (const gchar *description)
return bin;
}
-/* this function reads the gconf key, parses the pipeline bit to a bin,
- * and ghosts at most one unconnected src pad and one unconnected sink pad */
+/**
+ * gst_gconf_render_bin_from_key:
+ * @key: a #gchar string corresponding to a GConf key.
+ *
+ * Render bin from GConf key @key.
+ *
+ * Returns: a #GstElement containing the rendered bin.
+ */
GstElement *
gst_gconf_render_bin_from_key (const gchar *key)
{
@@ -138,12 +165,15 @@ gst_gconf_render_bin_from_key (const gchar *key)
return bin;
}
-/*
-guint gst_gconf_notify_add (const gchar *key,
- GConfClientNotifyFunc func,
- gpointer user_data);
-*/
-
+/**
+ * gst_gconf_get_default_audio_sink:
+ *
+ * Render audio output bin from GStreamer GConf key : "default/audiosink".
+ * If key is invalid osssink is used as default output plugin.
+ *
+ * Returns: a #GstElement containing the audio output bin, or NULL if
+ * everything failed.
+ */
GstElement *
gst_gconf_get_default_audio_sink (void)
{
@@ -161,6 +191,15 @@ gst_gconf_get_default_audio_sink (void)
return ret;
}
+/**
+ * gst_gconf_get_default_video_sink:
+ *
+ * Render video output bin from GStreamer GConf key : "default/videosink".
+ * If key is invalid xvideosink is used as default output plugin.
+ *
+ * Returns: a #GstElement containing the video output bin, or NULL if
+ * everything failed.
+ */
GstElement *
gst_gconf_get_default_video_sink (void)
{
@@ -178,6 +217,15 @@ gst_gconf_get_default_video_sink (void)
return ret;
}
+/**
+ * gst_gconf_get_default_audio_src:
+ *
+ * Render audio acquisition bin from GStreamer GConf key : "default/audiosrc".
+ * If key is invalid osssrc is used as default source.
+ *
+ * Returns: a #GstElement containing the audio source bin, or NULL if
+ * everything failed.
+ */
GstElement *
gst_gconf_get_default_audio_src (void)
{
@@ -195,6 +243,16 @@ gst_gconf_get_default_audio_src (void)
return ret;
}
+/**
+ * gst_gconf_get_default_video_src:
+ *
+ * Render video acquisition bin from GStreamer GConf key :
+ * "default/videosrc". If key is invalid videotestsrc
+ * is used as default source.
+ *
+ * Returns: a #GstElement containing the video source bin, or NULL if
+ * everything failed.
+ */
GstElement *
gst_gconf_get_default_video_src (void)
{
@@ -212,6 +270,32 @@ gst_gconf_get_default_video_src (void)
return ret;
}
+/**
+ * gst_gconf_get_default_visualisation_element:
+ *
+ * Render visualisation bin from GStreamer GConf key : "default/visualisation".
+ * If key is invalid goom is used as default visualisation element.
+ *
+ * Returns: a #GstElement containing the visualisation bin, or NULL if
+ * everything failed.
+ */
+GstElement *
+gst_gconf_get_default_visualisation_element (void)
+{
+ GstElement *ret = gst_gconf_render_bin_from_key ("default/visualisation");
+
+ if (!ret) {
+ ret = gst_element_factory_make ("goom", NULL);
+
+ if (!ret)
+ g_warning ("No GConf default visualisation plugin key and goom doesn't work");
+ else
+ g_warning ("GConf visualisation plugin not found, using goom");
+ }
+
+ return ret;
+}
+
static gboolean
plugin_init (GModule *module, GstPlugin *plugin)
{
diff --git a/gst-libs/gst/gconf/gconf.h b/gst-libs/gst/gconf/gconf.h
index 4444b5fee..3cfea2299 100644
--- a/gst-libs/gst/gconf/gconf.h
+++ b/gst-libs/gst/gconf/gconf.h
@@ -19,10 +19,6 @@ GstElement * gst_gconf_get_default_video_sink (void);
GstElement * gst_gconf_get_default_audio_sink (void);
GstElement * gst_gconf_get_default_video_src (void);
GstElement * gst_gconf_get_default_audio_src (void);
+GstElement * gst_gconf_get_default_visualisation_element (void);
-/*
-guint gst_gconf_notify_add (const gchar *key,
- GConfClientNotifyFunc func,
- gpointer user_data);
-*/
#endif /* GST_GCONF_H */