+2005-11-21 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/random/ensonic/media-device-daemon.txt:
+ wild idea, can this be done?
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gsterror.h:
+ * gst/gstfilter.c:
+ * gst/gstfilter.h:
+ * gst/gstplugin.h:
+ * gst/gstpluginfeature.c:
+ * gst/gsttrace.c:
+ * gst/gstvalue.c:
+ * gst/gstvalue.h:
+ doc fixes and additions
+
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesrc.c (GST_LIVE_BROADCAST, GST_LIVE_SIGNAL)
gst_clock_adjust_unlocked
gst_clock_get_calibration
gst_clock_set_calibration
-gst_clock_get_master
-gst_clock_set_master
gst_clock_id_get_time
gst_clock_id_wait
gst_clock_id_wait_async
gst_plugin_get_module
gst_plugin_is_loaded
gst_plugin_name_filter
-gst_plugin_check_file
gst_plugin_load_file
gst_plugin_load
gst_plugin_load_by_name
gst_trace_destroy
gst_trace_flush
gst_trace_text_flush
+gst_trace_add_entry
gst_trace_get_size
gst_trace_get_offset
gst_trace_get_remaining
gst_alloc_trace_register
gst_alloc_trace_new
gst_alloc_trace_free
-gst_trace_add_entry
<SUBSECTION Standard>
GST_TYPE_ALLOC_TRACE_FLAGS
<SUBSECTION Private>
--- /dev/null
+$Id$
+
+- 4 new elements
+ virtual-audiosink, virtual-videosink
+ virtual-audiosrc, virtual-videosrc
+
+- daemon that holds list of instances
+- gui app that lists instances as mixing-desk like channelstrips
+- channelstrips would contain
+ - audio
+ - volume, panorama, 3-band eq
+ - video
+ - brightness, contrast, alpha-level
+- user can
+ - add insert-fx
+ - route channel to targets, where targets can be real sinks or more
+ virtual-sinks (sub-groups)
+- virtual sinks need queues to decouple application processes
+- interfaces
+ - expose child-elements via child-proxy
+ - then e.g. the applications volume-control could directly access the
+ channelstrip
+ - state-control (play, pause/mute)
+ - it would be useful if one app could pause/mute others
+ - think of a voip-client, if there is an incomming call, if pauses your
+ media-player, or mutes the monitoring of your recording app
/**
* GST_ERROR_SYSTEM:
*
- * Returns a string using errno describing the previously failed system
+ * Builds a string using errno describing the previously failed system
* call. To be used as the debug argument in #GST_ELEMENT_ERROR.
*/
#define GST_ERROR_SYSTEM ("system error: %s", g_strerror (errno))
* SECTION:gstfilter
* @short_description: A utility function to filter GLists.
*
+ * <example>
+ * <title>Filtering a list</title>
+ * <programlisting>
+ * GList *node;
+ * GstObject *result = NULL;
+ *
+ * node = gst_filter_run (list, (GstFilterFunc) my_filter, TRUE, NULL);
+ * if (node) {
+ * result = GST_OBJECT (node->data);
+ * gst_object_ref (result);
+ * gst_list_free (node);
+ * }
+ * </programlisting>
+ * </example>
*/
#include "gst_private.h"
#include <gst/gstfilter.h>
G_BEGIN_DECLS
+/**
+ * GstFilterFunc:
+ * @obj: the object
+ * @user_data: filter data
+ *
+ * Function prototype for a filter callback taht can be use in gst_filter_run().
+ * The function should apply its filtering to @obj. Additional data passed to
+ * gst_filter_run() are in @data.
+ *
+ * Returns: %TRUE for success.
+ */
typedef gboolean (*GstFilterFunc) (gpointer obj, gpointer user_data);
GList* gst_filter_run (const GList *list, GstFilterFunc func, gboolean first, gpointer user_data);
gboolean gst_plugin_name_filter (GstPlugin *plugin, const gchar *name);
+/* This is not implemented (yet|anymore)
gboolean gst_plugin_check_file (const gchar *filename, GError** error);
+*/
GstPlugin * gst_plugin_load_file (const gchar *filename, GError** error);
GstPlugin * gst_plugin_load (GstPlugin *plugin);
return real_feature;
}
+/**
+ * gst_plugin_feature_type_name_filter:
+ * @feature: the #GstPluginFeature
+ * @data: the type and name to check against
+ *
+ * Compares type and name of plugin feature. Can be used with gst_filter_run().
+ *
+ * Returns: TRUE if equal.
+ */
gboolean
gst_plugin_feature_type_name_filter (GstPluginFeature * feature,
GstTypeNameData * data)
* #GType. The counter is incremented for each object allocated and decremented
* it when it's freed.
*
- * (FIXME: add example - see jamboree/tests/read-tags.c)
+ * <example>
+ * <title>Tracing object instances</title>
+ * <programlisting>
+ * // trace un-freed object instances
+ * gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
+ * if (!gst_alloc_trace_available ()) {
+ * g_warning ("Trace not available (recompile with trace enabled).");
+ * }
+ * gst_alloc_trace_print_live ();
+ * // do something here
+ * gst_alloc_trace_print_live ();
+ * </programlisting>
+ * </example>
*
- * Last reviewed on 2005-11-18 (0.9.5)
+ * Last reviewed on 2005-11-21 (0.9.5)
*/
#ifdef HAVE_CONFIG_H
}
/**
- * gst_value_register_intersection_func:
+ * gst_value_register_intersect_func:
* @type1: the first type to intersect
* @type2: the second type to intersect
* @func: the intersection function
* Registers a function that is called to calculate the intersection
* of the values having the types @type1 and @type2.
*/
-/**
- * GstValueIntersectFunc:
- * @dest: a uninitialized #GValue that will hold the calculated
- * intersection value
- * @value1: a value to intersect
- * @value2: another value to intersect
- *
- * Functions having this type calculate the intersection of @value1
- * and @value2. If the intersection is non-empty, the result is
- * placed in @dest and TRUE is returned. If the intersection is
- * empty, @dest is unmodified and FALSE is returned.
- *
- * Returns: TRUE if the intersection is non-empty, FALSE otherwise
- */
void
gst_value_register_intersect_func (GType type1, GType type2,
GstValueIntersectFunc func)
* @value2: a #GValue operand
*
* Used by gst_value_intersect() to perform intersection for a specific #GValue
- * type. Register a new implementation with gst_value_register_intersection_func().
+ * type. If the intersection is non-empty, the result is
+ * placed in @dest and TRUE is returned. If the intersection is
+ * empty, @dest is unmodified and FALSE is returned.
+ * Register a new implementation with gst_value_register_intersection_func().
*
* Returns: %TRUE if the values can intersect
*/