restructured DParam docs added some thoughts about dparams ng

Original commit message from CVS:
restructured DParam docs
added some thoughts about dparams ng
This commit is contained in:
Stefan Kost 2005-01-26 15:15:26 +00:00
parent 461d03948f
commit d0b8df6677
15 changed files with 639 additions and 290 deletions

View file

@ -1,3 +1,26 @@
2005-01-26 Stefan Kost <ensonic@users.sf.net>
* docs/gst/gstreamer-sections.txt:
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt:
* docs/libs/tmpl/gstcontrol.sgml:
* docs/libs/tmpl/gstdparam.sgml:
* docs/libs/tmpl/gstdplinint.sgml:
* docs/libs/tmpl/gstdpman.sgml:
* docs/libs/tmpl/gstdpsmooth.sgml:
* docs/libs/tmpl/gstputbits.sgml:
* docs/libs/tmpl/gstunitconvert.sgml:
* libs/gst/control/dparam.c:
* libs/gst/control/dparam.h:
* libs/gst/control/dparammanager.c:
(gst_dpman_add_required_dparam_callback),
(gst_dpman_add_required_dparam_direct),
(gst_dpman_add_required_dparam_array),
(gst_dpman_remove_required_dparam), (gst_dpman_attach_dparam),
(gst_dpman_get_dparam), (gst_dpman_get_dparam_type),
(gst_dpman_get_manager)
restructured DParam docs
2005-01-25 Tim-Philipp Müller <tim at centricular dot net> 2005-01-25 Tim-Philipp Müller <tim at centricular dot net>
* gst-element-check.m4: * gst-element-check.m4:

View file

@ -8,6 +8,8 @@
# <SUBSECTION Private> # <SUBSECTION Private>
# </SECTION> # </SECTION>
<INCLUDE>gst/gst.h</INCLUDE>
<SECTION> <SECTION>
<FILE>gst</FILE> <FILE>gst</FILE>
<TITLE>Gst</TITLE> <TITLE>Gst</TITLE>

View file

@ -9,6 +9,11 @@
<!ENTITY GstGetbits SYSTEM "xml/gstputbits.xml"> <!ENTITY GstGetbits SYSTEM "xml/gstputbits.xml">
--> -->
<!ENTITY GstControl SYSTEM "xml/gstcontrol.xml"> <!ENTITY GstControl SYSTEM "xml/gstcontrol.xml">
<!ENTITY GstDParamManager SYSTEM "xml/gstdpman.xml">
<!ENTITY GstDParam SYSTEM "xml/gstdparam.xml">
<!ENTITY GstDParamSmooth SYSTEM "xml/gstdpsmooth.xml">
<!ENTITY GstDParamLinInterp SYSTEM "xml/gstdplinint.xml">
<!ENTITY GstUnitConvert SYSTEM "xml/gstunitconvert.xml">
<!ENTITY GstDataProtocol SYSTEM "xml/gstdataprotocol.xml"> <!ENTITY GstDataProtocol SYSTEM "xml/gstdataprotocol.xml">
<!-- generated by gtkdoc-mkdb, stupid name --> <!-- generated by gtkdoc-mkdb, stupid name -->
@ -21,7 +26,7 @@
<title>GStreamer &GST_MAJORMINOR; Library Reference Manual</title> <title>GStreamer &GST_MAJORMINOR; Library Reference Manual</title>
<releaseinfo>for GStreamer Library &GST_MAJORMINOR; (&GST_VERSION;)</releaseinfo> <releaseinfo>for GStreamer Library &GST_MAJORMINOR; (&GST_VERSION;)</releaseinfo>
</bookinfo> </bookinfo>
<chapter id="gstreamer-libs"> <part id="gstreamer-libs">
<title>GStreamer Libraries</title> <title>GStreamer Libraries</title>
<para> <para>
@ -32,19 +37,28 @@
GStreamer provides some standard libraries you can use to create plugins. GStreamer provides some standard libraries you can use to create plugins.
</para> </para>
&GstBytestream; &GstBytestream;
&GstControl;
&GstDataProtocol; &GstDataProtocol;
&GstGetbits; &GstGetbits;
<!-- has not yet been written <!-- has not yet been written
&GstPutbits; &GstPutbits;
--> -->
<!--link linkend="GObject">GObject</link-->
<chapter id="gstreamer-control">
<title>gstcontrol</title>
&GstControl;
&GstDParamManager;
&GstDParam;
&GstDParamSmooth;
&GstDParamLinInterp;
&GstUnitConvert;
</chapter> </chapter>
</part>
<chapter id="gstreamer-libs-hierarchy"> <part id="gstreamer-libs-hierarchy">
<title>Object Hierarchy</title> <title>Object Hierarchy</title>
&gstreamer-libs-tree-index; &gstreamer-libs-tree-index;
</chapter> </part>
<index id="api-index"> <index id="api-index">
<title>API Index</title> <title>API Index</title>

View file

@ -1,3 +1,14 @@
# GStreamer Libraries API reference sections
# please add section in the alpahbetical order to each library
# using the following template
# <SECTION>
# <FILE>gstxxx</FILE>
# <TITLE>GstXxx</TITLE>
# <SUBSECTION Standard>
# <SUBSECTION Private>
# </SECTION>
<SECTION> <SECTION>
<FILE>gstgetbits</FILE> <FILE>gstgetbits</FILE>
<INCLUDE>libs/getbits/gstgetbits.h</INCLUDE> <INCLUDE>libs/getbits/gstgetbits.h</INCLUDE>
@ -122,11 +133,21 @@ gst_dp_validate_packet
<SUBSECTION Standard> <SUBSECTION Standard>
</SECTION> </SECTION>
# GstControl library
<SECTION> <SECTION>
<FILE>gstcontrol</FILE> <FILE>gstcontrol</FILE>
<TITLE>GstControl</TITLE>
<INCLUDE>libs/control/control.h</INCLUDE> <INCLUDE>libs/control/control.h</INCLUDE>
gst_control_init gst_control_init
<SUBSECTION Dynamic Parameter Manager> <SUBSECTION Standard>
<SUBSECTION Private>
</SECTION>
<SECTION>
<FILE>gstdpman</FILE>
<TITLE>GstDParamManager</TITLE>
<INCLUDE>libs/control/control.h</INCLUDE>
GstDParamManager GstDParamManager
gst_dpman_new gst_dpman_new
gst_dpman_add_required_dparam_callback gst_dpman_add_required_dparam_callback
@ -145,11 +166,58 @@ gst_dpman_set_mode
gst_dpman_set_parent gst_dpman_set_parent
gst_dpman_get_manager gst_dpman_get_manager
gst_dpman_bypass_dparam gst_dpman_bypass_dparam
<SUBSECTION Dynamic Parameters> <SUBSECTION Standard>
<SUBSECTION Private>
</SECTION>
<SECTION>
<FILE>gstdparam</FILE>
<TITLE>GstDParam</TITLE>
<INCLUDE>libs/control/control.h</INCLUDE>
GstDParam GstDParam
gst_dparam_new gst_dparam_new
gst_dparam_attach gst_dparam_attach
gst_dparam_detach gst_dparam_detach
gst_dparam_do_update_default gst_dparam_do_update_default
gst_dpsmooth_new <SUBSECTION Standard>
<SUBSECTION Private>
</SECTION> </SECTION>
<SECTION>
<FILE>gstdpsmooth</FILE>
<TITLE>GstDParamSmooth</TITLE>
<INCLUDE>libs/control/control.h</INCLUDE>
GstDParamSmooth
gst_dpsmooth_new
<SUBSECTION Standard>
<SUBSECTION Private>
</SECTION>
<SECTION>
<FILE>gstdplinint</FILE>
<TITLE>GstDParamLinInterp</TITLE>
<INCLUDE>libs/control/control.h</INCLUDE>
GstDParamLinInterp
gst_dp_linint_new
<SUBSECTION Standard>
<SUBSECTION Private>
</SECTION>
<SECTION>
<FILE>gstunitconvert</FILE>
<TITLE>GstUnitConvert</TITLE>
<INCLUDE>libs/control/control.h</INCLUDE>
GstUnitConvert
gst_unitconv_new
gst_unitconv_set_convert_units
gst_unitconv_convert_value
gst_unitconv_unit_spec
gst_unitconv_unit_exists
gst_unitconv_unit_is_logarithmic
gst_unitconv_register_unit
gst_unitconv_register_convert_func
gst_unitconv_register_convert_property
<SUBSECTION Standard>
<SUBSECTION Private>
</SECTION>

View file

@ -42,276 +42,3 @@ The next step is to get hold of the GstDParamManager instance of a GstElement.
@argv: @argv:
<!-- ##### STRUCT GstDParamManager ##### -->
<para>
</para>
<!-- ##### SIGNAL GstDParamManager::new-required-dparam ##### -->
<para>
</para>
@gstdparammanager: the object which received the signal.
@arg1:
<!-- ##### FUNCTION gst_dpman_new ##### -->
<para>
</para>
@name:
@parent:
@Returns:
<!-- ##### FUNCTION gst_dpman_add_required_dparam_callback ##### -->
<para>
</para>
@dpman:
@param_spec:
@unit_name:
@update_func:
@update_data:
@Returns:
<!-- ##### FUNCTION gst_dpman_add_required_dparam_direct ##### -->
<para>
</para>
@dpman:
@param_spec:
@unit_name:
@update_data:
@Returns:
<!-- ##### FUNCTION gst_dpman_add_required_dparam_array ##### -->
<para>
</para>
@dpman:
@param_spec:
@unit_name:
@update_data:
@Returns:
<!-- ##### FUNCTION gst_dpman_remove_required_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
<!-- ##### FUNCTION gst_dpman_attach_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
@dparam:
@Returns:
<!-- ##### FUNCTION gst_dpman_detach_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
<!-- ##### FUNCTION gst_dpman_get_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
@Returns:
<!-- # Unused Parameters # -->
@name:
<!-- ##### FUNCTION gst_dpman_get_dparam_type ##### -->
<para>
</para>
@dpman:
@dparam_name:
@Returns:
<!-- # Unused Parameters # -->
@name:
<!-- ##### FUNCTION gst_dpman_list_dparam_specs ##### -->
<para>
</para>
@dpman:
@Returns:
<!-- ##### FUNCTION gst_dpman_get_param_spec ##### -->
<para>
</para>
@dpman:
@dparam_name:
@Returns:
<!-- ##### FUNCTION gst_dpman_set_rate ##### -->
<para>
</para>
@dpman:
@rate:
<!-- ##### FUNCTION gst_dpman_register_mode ##### -->
<para>
</para>
@klass:
@modename:
@preprocessfunc:
@processfunc:
@setupfunc:
@teardownfunc:
<!-- ##### FUNCTION gst_dpman_set_mode ##### -->
<para>
</para>
@dpman:
@modename:
@Returns:
<!-- ##### FUNCTION gst_dpman_set_parent ##### -->
<para>
</para>
@dpman:
@parent:
<!-- ##### FUNCTION gst_dpman_get_manager ##### -->
<para>
</para>
@parent:
@Returns:
<!-- ##### FUNCTION gst_dpman_bypass_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
<!-- ##### STRUCT GstDParam ##### -->
<para>
</para>
<!-- ##### SIGNAL GstDParam::value-changed ##### -->
<para>
</para>
@gstdparam: the object which received the signal.
<!-- ##### ARG GstDParam:value-double ##### -->
<para>
</para>
<!-- ##### ARG GstDParam:value-float ##### -->
<para>
</para>
<!-- ##### ARG GstDParam:value-int ##### -->
<para>
</para>
<!-- ##### ARG GstDParam:value-int64 ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_dparam_new ##### -->
<para>
</para>
@type:
@Returns:
<!-- ##### FUNCTION gst_dparam_attach ##### -->
<para>
</para>
@dparam:
@manager:
@param_spec:
@unit_name:
<!-- ##### FUNCTION gst_dparam_detach ##### -->
<para>
</para>
@dparam:
<!-- ##### FUNCTION gst_dparam_do_update_default ##### -->
<para>
</para>
@dparam:
@timestamp:
@value:
@update_info:
<!-- ##### FUNCTION gst_dpsmooth_new ##### -->
<para>
</para>
@type:
@Returns:

View file

@ -0,0 +1,88 @@
<!-- ##### SECTION Title ##### -->
GstDParam
<!-- ##### SECTION Short_Description ##### -->
dynamic parameter instance
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GstDParam ##### -->
<para>
</para>
<!-- ##### SIGNAL GstDParam::value-changed ##### -->
<para>
</para>
@gstdparam: the object which received the signal.
<!-- ##### ARG GstDParam:value-double ##### -->
<para>
</para>
<!-- ##### ARG GstDParam:value-float ##### -->
<para>
</para>
<!-- ##### ARG GstDParam:value-int ##### -->
<para>
</para>
<!-- ##### ARG GstDParam:value-int64 ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_dparam_new ##### -->
<para>
</para>
@type:
@Returns:
<!-- ##### FUNCTION gst_dparam_attach ##### -->
<para>
</para>
@dparam:
@manager:
@param_spec:
@unit_name:
<!-- ##### FUNCTION gst_dparam_detach ##### -->
<para>
</para>
@dparam:
<!-- ##### FUNCTION gst_dparam_do_update_default ##### -->
<para>
</para>
@dparam:
@timestamp:
@value:
@update_info:

View file

@ -0,0 +1,31 @@
<!-- ##### SECTION Title ##### -->
GstDParamLinInterp
<!-- ##### SECTION Short_Description ##### -->
linear interpolation dynamic parameter
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GstDParamLinInterp ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_dp_linint_new ##### -->
<para>
</para>
@type:
@Returns:

View file

@ -0,0 +1,214 @@
<!-- ##### SECTION Title ##### -->
GstDParamManager
<!-- ##### SECTION Short_Description ##### -->
dynamic parameter manager
<!-- ##### SECTION Long_Description ##### -->
<para>
The manager bings all functions to work with #GstElements and their #GstDParams.
One can find out which dparams an element has, get the parameter specs and
pick a control change rate.
</para>
<para>
Some functions are meant for dparam implementor (plugin writers), where others
are for applications that use elements with dparams.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GstDParamManager ##### -->
<para>
</para>
<!-- ##### SIGNAL GstDParamManager::new-required-dparam ##### -->
<para>
</para>
@gstdparammanager: the object which received the signal.
@arg1:
<!-- ##### FUNCTION gst_dpman_new ##### -->
<para>
</para>
@name:
@parent:
@Returns:
<!-- ##### FUNCTION gst_dpman_add_required_dparam_callback ##### -->
<para>
</para>
@dpman:
@param_spec:
@unit_name:
@update_func:
@update_data:
@Returns:
<!-- ##### FUNCTION gst_dpman_add_required_dparam_direct ##### -->
<para>
</para>
@dpman:
@param_spec:
@unit_name:
@update_data:
@Returns:
<!-- ##### FUNCTION gst_dpman_add_required_dparam_array ##### -->
<para>
</para>
@dpman:
@param_spec:
@unit_name:
@update_data:
@Returns:
<!-- ##### FUNCTION gst_dpman_remove_required_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
<!-- ##### FUNCTION gst_dpman_attach_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
@dparam:
@Returns:
<!-- ##### FUNCTION gst_dpman_detach_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
<!-- ##### FUNCTION gst_dpman_get_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:
@Returns:
<!-- # Unused Parameters # -->
@name:
<!-- ##### FUNCTION gst_dpman_get_dparam_type ##### -->
<para>
</para>
@dpman:
@dparam_name:
@Returns:
<!-- # Unused Parameters # -->
@name:
<!-- ##### FUNCTION gst_dpman_list_dparam_specs ##### -->
<para>
</para>
@dpman:
@Returns:
<!-- ##### FUNCTION gst_dpman_get_param_spec ##### -->
<para>
</para>
@dpman:
@dparam_name:
@Returns:
<!-- ##### FUNCTION gst_dpman_set_rate ##### -->
<para>
</para>
@dpman:
@rate:
<!-- ##### FUNCTION gst_dpman_register_mode ##### -->
<para>
</para>
@klass:
@modename:
@preprocessfunc:
@processfunc:
@setupfunc:
@teardownfunc:
<!-- ##### FUNCTION gst_dpman_set_mode ##### -->
<para>
</para>
@dpman:
@modename:
@Returns:
<!-- ##### FUNCTION gst_dpman_set_parent ##### -->
<para>
</para>
@dpman:
@parent:
<!-- ##### FUNCTION gst_dpman_get_manager ##### -->
<para>
</para>
@parent:
@Returns:
<!-- ##### FUNCTION gst_dpman_bypass_dparam ##### -->
<para>
</para>
@dpman:
@dparam_name:

View file

@ -0,0 +1,51 @@
<!-- ##### SECTION Title ##### -->
GstDParamSmooth
<!-- ##### SECTION Short_Description ##### -->
realtime smoothed dynamic parameter
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GstDParamSmooth ##### -->
<para>
</para>
<!-- ##### ARG GstDParamSmooth:slope-delta-double ##### -->
<para>
</para>
<!-- ##### ARG GstDParamSmooth:slope-delta-float ##### -->
<para>
</para>
<!-- ##### ARG GstDParamSmooth:slope-time ##### -->
<para>
</para>
<!-- ##### ARG GstDParamSmooth:update-period ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_dpsmooth_new ##### -->
<para>
</para>
@type:
@Returns:

View file

@ -0,0 +1,16 @@
<!-- ##### SECTION Title ##### -->
gstputbits
<!-- ##### SECTION Short_Description ##### -->
Accelerated routines for putting bits into a data stream
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>

View file

@ -0,0 +1,112 @@
<!-- ##### SECTION Title ##### -->
GstUnitConvert
<!-- ##### SECTION Short_Description ##### -->
conversion between units of measurement
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### STRUCT GstUnitConvert ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_unitconv_new ##### -->
<para>
</para>
@Returns:
<!-- ##### FUNCTION gst_unitconv_set_convert_units ##### -->
<para>
</para>
@unitconv:
@from_unit_named:
@to_unit_named:
@Returns:
<!-- ##### FUNCTION gst_unitconv_convert_value ##### -->
<para>
</para>
@unitconv:
@from_value:
@to_value:
@Returns:
<!-- ##### FUNCTION gst_unitconv_unit_spec ##### -->
<para>
</para>
@unit_name:
@Returns:
<!-- ##### FUNCTION gst_unitconv_unit_exists ##### -->
<para>
</para>
@unit_name:
@Returns:
<!-- ##### FUNCTION gst_unitconv_unit_is_logarithmic ##### -->
<para>
</para>
@unit_name:
@Returns:
<!-- ##### FUNCTION gst_unitconv_register_unit ##### -->
<para>
</para>
@domain_name:
@is_domain_default:
@is_logarithmic:
@unit_spec:
@Returns:
<!-- ##### FUNCTION gst_unitconv_register_convert_func ##### -->
<para>
</para>
@from_unit_named:
@to_unit_named:
@convert_func:
@Returns:
<!-- ##### FUNCTION gst_unitconv_register_convert_property ##### -->
<para>
</para>
@unit_name:
@convert_prop_spec:
@Returns:

View file

@ -13,6 +13,9 @@ $Id$
dparam_mode_synchronous dparam_mode_synchronous
dparam_mode_asynchronous dparam_mode_asynchronous
dparam_mode_disabled dparam_mode_disabled
* split dparam manager api
* plugin api
* application api
* documentation * documentation
* state of unitconvert * state of unitconvert

View file

@ -1,7 +1,7 @@
/* GStreamer /* GStreamer
* Copyright (C) 2001 Steve Baker <stevebaker_org@yahoo.co.uk> * Copyright (C) 2001 Steve Baker <stevebaker_org@yahoo.co.uk>
* *
* gstdparam.c: Dynamic Parameter functionality * gstdparam.c: Dynamic Parameter
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public * modify it under the terms of the GNU Library General Public

View file

@ -55,7 +55,6 @@ G_BEGIN_DECLS
typedef struct _GstDParamClass GstDParamClass; typedef struct _GstDParamClass GstDParamClass;
typedef enum { typedef enum {
GST_DPARAM_UPDATE_FIRST, GST_DPARAM_UPDATE_FIRST,
GST_DPARAM_UPDATE_NORMAL GST_DPARAM_UPDATE_NORMAL

View file

@ -636,7 +636,7 @@ gst_dpman_set_parent (GstDParamManager * dpman, GstElement * parent)
* Fetch the GstElement that parameters are handled by this manager. * Fetch the GstElement that parameters are handled by this manager.
* *
* Returns: the GstDParamManager which belongs to this element or NULL * Returns: the GstDParamManager which belongs to this element or NULL
* if it doesn't exist * if it doesn't exist. Do not call g_object_unref() on it.
*/ */
GstDParamManager * GstDParamManager *
gst_dpman_get_manager (GstElement * parent) gst_dpman_get_manager (GstElement * parent)
@ -647,6 +647,7 @@ gst_dpman_get_manager (GstElement * parent)
g_return_val_if_fail (GST_IS_ELEMENT (parent), NULL); g_return_val_if_fail (GST_IS_ELEMENT (parent), NULL);
dpman = (GstDParamManager *) g_hash_table_lookup (_element_registry, parent); dpman = (GstDParamManager *) g_hash_table_lookup (_element_registry, parent);
/* FIXME: shouldn't this be g_object_ref(dpman); */
return dpman; return dpman;
} }