diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index bf15ac9723..253412bfcf 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -196,6 +196,7 @@ gst_element_get_padtemplate_list
gst_element_add_ghost_pad
gst_element_remove_ghost_pad
gst_element_connect
+gst_element_disconnect
gst_element_set_state
gst_element_error
gst_element_get_factory
@@ -339,8 +340,10 @@ gst_pad_push
gst_pad_pull
gst_pad_pull_region
gst_pad_pullregion
-gst_pad_handle_qos
+gst_pad_select
gst_pad_set_eos
+gst_pad_eos_func
+gst_pad_handle_qos
gst_pad_eos
gst_pad_save_thyself
gst_pad_load_and_connect
@@ -426,7 +429,12 @@ GstPlugin
GstPluginElement
GstPluginInitFunc
gst_plugin_new
+gst_plugin_set_name
+gst_plugin_get_name
+gst_plugin_get_longname
gst_plugin_set_longname
+gst_plugin_get_filename
+gst_plugin_is_loaded
gst_plugin_load_all
gst_plugin_load
gst_plugin_load_absolute
@@ -435,6 +443,8 @@ gst_plugin_add_factory
gst_plugin_add_type
gst_plugin_find
gst_plugin_get_list
+gst_plugin_get_factory_list
+gst_plugin_get_type_list
gst_plugin_find_elementfactory
gst_plugin_load_elementfactory
gst_plugin_load_typefactory
@@ -521,6 +531,12 @@ gst_caps_new
gst_caps_new_with_props
gst_caps_register
gst_caps_register_count
+gst_caps_get_name
+gst_caps_set_mime
+gst_caps_set_type_id
+gst_caps_get_type_id
+gst_caps_get_mime
+gst_caps_set_name
gst_caps_set_props
gst_caps_get_props
gst_caps_check_compatibility
diff --git a/docs/gst/tmpl/gstasyncdisksrc.sgml b/docs/gst/tmpl/gstasyncdisksrc.sgml
index b355753553..ca7479d480 100644
--- a/docs/gst/tmpl/gstasyncdisksrc.sgml
+++ b/docs/gst/tmpl/gstasyncdisksrc.sgml
@@ -32,3 +32,23 @@ the offset.
@GST_ASYNCDISKSRC_OPEN:
@GST_ASYNCDISKSRC_FLAG_LAST:
+
+
+Specify the location of the file to read.
+
+
+
+
+Specify how many bytes to read at a time.
+
+
+
+
+Specify the current offset in the file.
+
+
+
+
+
+
+
diff --git a/docs/gst/tmpl/gstaudiosink.sgml b/docs/gst/tmpl/gstaudiosink.sgml
index 8ec48a9cb6..87e51aa4d3 100644
--- a/docs/gst/tmpl/gstaudiosink.sgml
+++ b/docs/gst/tmpl/gstaudiosink.sgml
@@ -14,3 +14,32 @@ Output to a sound card via OSS.
+
+
+The buffer is sent to the sound card.
+
+
+@gstaudiosink: the object which received the signal.
+
+@arg1: the audiosink.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/gst/tmpl/gstaudiosrc.sgml b/docs/gst/tmpl/gstaudiosrc.sgml
index 68dabaab9b..721a58f3e7 100644
--- a/docs/gst/tmpl/gstaudiosrc.sgml
+++ b/docs/gst/tmpl/gstaudiosrc.sgml
@@ -14,3 +14,28 @@ Create buffers from an OSS sound card.
+
+
+The number of bytes per read.
+
+
+
+
+Get the current number of bytes read.
+
+
+
+
+The audio format as defined in soundcard.h
+
+
+
+
+The number of channels (mono, stereo, ...)
+
+
+
+
+The frequency.
+
+
diff --git a/docs/gst/tmpl/gstbin.sgml b/docs/gst/tmpl/gstbin.sgml
index 5375c597c4..98f827e650 100644
--- a/docs/gst/tmpl/gstbin.sgml
+++ b/docs/gst/tmpl/gstbin.sgml
@@ -121,3 +121,12 @@ Flags for a bin
@bin:
+
+
+is signaled whenever a new GstElement is added to the GstBin
+
+
+
+@gstbin: the object which received the signal.
+@arg1: the element that was added
+
diff --git a/docs/gst/tmpl/gstcaps.sgml b/docs/gst/tmpl/gstcaps.sgml
index 6c53861409..2394e02bbf 100644
--- a/docs/gst/tmpl/gstcaps.sgml
+++ b/docs/gst/tmpl/gstcaps.sgml
@@ -78,6 +78,60 @@ a mime-type and a set of properties.
@count:
+
+
+
+
+
+@caps:
+@Returns:
+
+
+
+
+
+
+
+@caps:
+@mime:
+
+
+
+
+
+
+
+@caps:
+@typeid:
+
+
+
+
+
+
+
+@caps:
+@Returns:
+
+
+
+
+
+
+
+@caps:
+@Returns:
+
+
+
+
+
+
+
+@caps:
+@name:
+
+
diff --git a/docs/gst/tmpl/gstdisksrc.sgml b/docs/gst/tmpl/gstdisksrc.sgml
index d8516af222..67c4fd6366 100644
--- a/docs/gst/tmpl/gstdisksrc.sgml
+++ b/docs/gst/tmpl/gstdisksrc.sgml
@@ -33,3 +33,23 @@ with seeking capabilities use a GstAsynDiskSrc instead.
@GST_DISKSRC_OPEN:
@GST_DISKSRC_FLAG_LAST:
+
+
+Specify the location of the file to read.
+
+
+
+
+Specify how many bytes to read at a time.
+
+
+
+
+Get the current offset in the file.
+
+
+
+
+
+
+
diff --git a/docs/gst/tmpl/gstelement.sgml b/docs/gst/tmpl/gstelement.sgml
index e5607c86cf..3f251ebe29 100644
--- a/docs/gst/tmpl/gstelement.sgml
+++ b/docs/gst/tmpl/gstelement.sgml
@@ -319,6 +319,17 @@ circumstances.
@destpadname:
+
+
+
+
+
+@src:
+@srcpadname:
+@dest:
+@destpadname:
+
+
@@ -501,3 +512,44 @@ circumstances.
@Returns:
+
+
+Is trigered whenever the state of an element changes
+
+
+@gstelement: the object which received the signal.
+@arg1: the new state of the object
+
+
+
+Is trigered whenever a new pad is added to an element
+
+
+@gstelement: the object which received the signal.
+@arg1: the new pad that was added
+
+
+
+
+Is trigered whenever a new ghost pad is added to an element
+
+
+@gstelement: the object which received the signal.
+@arg1: the new ghost pad that was added
+
+
+
+Is trigered whenever an error occured
+
+
+
+@gstelement: the object which received the signal.
+@arg1: the error message
+
+
+
+
+
+
+@gstelement: the object which received the signal.
+
diff --git a/docs/gst/tmpl/gstfakesink.sgml b/docs/gst/tmpl/gstfakesink.sgml
index 361a67d1a7..9d405d62f4 100644
--- a/docs/gst/tmpl/gstfakesink.sgml
+++ b/docs/gst/tmpl/gstfakesink.sgml
@@ -16,3 +16,15 @@ with the buffer. (fakesink)
+
+
+
+
+
+@gstfakesink: the object which received the signal.
+
+
+
+
+
+
diff --git a/docs/gst/tmpl/gstfakesrc.sgml b/docs/gst/tmpl/gstfakesrc.sgml
index dfc2d57101..490bd541cd 100644
--- a/docs/gst/tmpl/gstfakesrc.sgml
+++ b/docs/gst/tmpl/gstfakesrc.sgml
@@ -14,3 +14,35 @@ The GstFakeSrc generates empty buffers. (fakesrc)
+
+
+
+
+
+@gstfakesrc: the object which received the signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/gst/tmpl/gstfdsink.sgml b/docs/gst/tmpl/gstfdsink.sgml
index ec3e297b20..a9f7327643 100644
--- a/docs/gst/tmpl/gstfdsink.sgml
+++ b/docs/gst/tmpl/gstfdsink.sgml
@@ -14,3 +14,8 @@ Write data to a file descriptor.
+
+
+The filedescriptor to write to.
+
+
diff --git a/docs/gst/tmpl/gstfdsrc.sgml b/docs/gst/tmpl/gstfdsrc.sgml
index dd2c183b71..882a451986 100644
--- a/docs/gst/tmpl/gstfdsrc.sgml
+++ b/docs/gst/tmpl/gstfdsrc.sgml
@@ -14,3 +14,18 @@ Read buffers from a file descriptor.
+
+
+The filedescriptor to read from. Pass the argument as a char* (???)
+
+
+
+
+The number of bytes per read.
+
+
+
+
+Get the current offset in the file.
+
+
diff --git a/docs/gst/tmpl/gsthttpsrc.sgml b/docs/gst/tmpl/gsthttpsrc.sgml
index 2ba4a00e8d..f1c74b859a 100644
--- a/docs/gst/tmpl/gsthttpsrc.sgml
+++ b/docs/gst/tmpl/gsthttpsrc.sgml
@@ -14,3 +14,14 @@ Reads data from a URL.
+
+
+Specify the location of the file. The location must be a fully qualified URL.
+
+
+
+
+Specify how many bytes to read at a time.
+
+
+
diff --git a/docs/gst/tmpl/gstidentity.sgml b/docs/gst/tmpl/gstidentity.sgml
index e5a1a65bde..0ec323dfd4 100644
--- a/docs/gst/tmpl/gstidentity.sgml
+++ b/docs/gst/tmpl/gstidentity.sgml
@@ -14,3 +14,8 @@ Pass data without modification.
+
+
+
+
+
diff --git a/docs/gst/tmpl/gstobject.sgml b/docs/gst/tmpl/gstobject.sgml
index ee6cdd88ad..27f67cfa4e 100644
--- a/docs/gst/tmpl/gstobject.sgml
+++ b/docs/gst/tmpl/gstobject.sgml
@@ -174,3 +174,11 @@ This macro releases a lock on the object.
@Returns:
+
+
+
+
+
+@gstobject: the object which received the signal.
+@arg1: the new parent
+
diff --git a/docs/gst/tmpl/gstpad.sgml b/docs/gst/tmpl/gstpad.sgml
index 03b0829f45..c8d7b6cc79 100644
--- a/docs/gst/tmpl/gstpad.sgml
+++ b/docs/gst/tmpl/gstpad.sgml
@@ -382,13 +382,14 @@ Destroy the pad
@size:
-
+
-@pad:
-@qos_message:
+@nextpad:
+@Varargs:
+@Returns:
@@ -400,6 +401,24 @@ Destroy the pad
@Returns:
+
+
+
+
+
+@pad:
+@Returns:
+
+
+
+
+
+
+
+@pad:
+@qos_message:
+
+
@@ -537,3 +556,8 @@ Indicates when this pad will become available
@Returns:
+
+
+Indicates this pad is active
+
+
diff --git a/docs/gst/tmpl/gstpipefilter.sgml b/docs/gst/tmpl/gstpipefilter.sgml
index 968c3132aa..55f1469e74 100644
--- a/docs/gst/tmpl/gstpipefilter.sgml
+++ b/docs/gst/tmpl/gstpipefilter.sgml
@@ -15,3 +15,8 @@ buffers from its output.
+
+
+Sets the command to be executed.
+
+
diff --git a/docs/gst/tmpl/gstplugin.sgml b/docs/gst/tmpl/gstplugin.sgml
index 0818ade2e8..802959e05a 100644
--- a/docs/gst/tmpl/gstplugin.sgml
+++ b/docs/gst/tmpl/gstplugin.sgml
@@ -54,6 +54,33 @@ by the loader at statup.
@Returns:
+
+
+
+
+
+@plugin:
+@name:
+
+
+
+
+
+
+
+@plugin:
+@Returns:
+
+
+
+
+
+
+
+@plugin:
+@Returns:
+
+
@@ -63,6 +90,24 @@ by the loader at statup.
@longname:
+
+
+
+
+
+@plugin:
+@Returns:
+
+
+
+
+
+
+
+@plugin:
+@Returns:
+
+
@@ -132,6 +177,24 @@ by the loader at statup.
@Returns:
+
+
+
+
+
+@plugin:
+@Returns:
+
+
+
+
+
+
+
+@plugin:
+@Returns:
+
+
diff --git a/docs/gst/tmpl/gstqueue.sgml b/docs/gst/tmpl/gstqueue.sgml
index 0363d626a7..e3ae1dfdaa 100644
--- a/docs/gst/tmpl/gstqueue.sgml
+++ b/docs/gst/tmpl/gstqueue.sgml
@@ -21,3 +21,19 @@ The default queue length is set to 10.
+
+
+Get the number of buffers in the queue.
+
+
+
+
+Specify the maximum number of buffers in the queue before the queue
+blocks.
+
+
+
+
+
+
+
diff --git a/docs/gst/tmpl/gstreamer-unused.sgml b/docs/gst/tmpl/gstreamer-unused.sgml
index 7792b6e986..c7336384bf 100644
--- a/docs/gst/tmpl/gstreamer-unused.sgml
+++ b/docs/gst/tmpl/gstreamer-unused.sgml
@@ -1,41 +1,44 @@
-
+
-@pad:
-@buf:
+@obj:
-
-
-Query the element for the current mime type
-
-
-
-
-
-
-
-
-@Returns:
-
-
+
-
+
-
+
+@format:
+@args...:
+
+
+
+
+
+
+@id:
+@sink:
+
+
+
+
+
+
+@src:
@@ -44,232 +47,20 @@ Query the element for the current mime type
@Returns:
-
+
@obj:
-
-
-
-
-
-@meta:
-
-
+
@obj:
-
-
-
-
-
-
-
-
-
-
-
-@pad:
-@buf:
-
-
-
-This macro usets the given flags.
-
-
-@src:
-@flag: Flag to set, must be a single bit in guint32.
-@obj: GstSrc to unset flag in.
-
-
-
-
-Is trigered whenever a new ghost pad is added to an element
-
-
-@gstelement: the object which received the signal.
-@arg1: the new ghost pad that was added
-
-
-
-The frequency.
-
-
-
-
-
-Specify the location of the file. The location must be a fully qualified URL.
-
-
-
-
-
-
-
-
-@pad:
-@buf:
-
-
-
-
-
-
-@pad:
-@buf:
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@elementfactory:
-@id:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-The number of channels.
-
-
-
-
-
-
-
-
-
-
-GstEsdSink
-
-
-
-
-Use this macro to show debugging info. This is only usefull when developing new
-plugin elements.
-If you #define DEBUG_ENABLED before including gst/gst.h, this macro will produce
-g_print messages.
-
-
-@format: the format specification as in g_print
-@args...: arguments
-
-
-
-
-
-
-
-
-
-
-
-
-@type:
-@parent:
-@Returns:
-
-
-
-Is trigered whenever the state of an element changes
-
-
-@gstelement: the object which received the signal.
-@arg1: the new state of the object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@src:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-@esdsink:
-@format:
-
An eos signal is triggered whenever the GstSrc has reached the end of
@@ -280,61 +71,53 @@ the stream.
@gstsrc: the object which received the signal.
@arg1: the object which received the signal
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
+
+@name:
@Returns:
-
+
+
+
+
+
+
+
@obj:
-
-
-Specify how many bytes to read at a time.
-
-
-
-
-
+
-@Returns:
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@obj:
-
+
@@ -349,68 +132,49 @@ Specify how many bytes to read at a time.
@name:
@Returns:
-
-
-
-
-
-@pad:
-@Returns:
-
-
-GstSrc
-
-
-
-
-
-
-
-
-
+
@obj:
-
+
-
+
+@format:
+@args...:
-
+
@obj:
-
+
+
+
+
+
+@obj:
+
+
-
-
+
-
-
-@name:
-@Returns:
-
-
-
-
-
@@ -420,227 +184,97 @@ GstSrc
@klass:
-
-
-
-
-
-
-
+
@klass:
-
+
@obj:
-
-
-
-
-
-@arg:
-
-
-
-
-
-
-@obj:
-
-
+
-
-GstConnection
-
-
-
-
-Specify how many bytes to read at a time.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-The frequency.
-
-
-
-
-
-Specify how many bytes to read at a time.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@Returns:
-
-
-The volume as a double 0.0 is silent, 1.0 is loudest.
-
-
-
-
+
-
-
-
-
-
-@connection:
-
-
-
-subclass use this to start their flag enumeration
-
-
-
-
-GstElement
-
-
-
+
@obj:
-
+
-@id:
@Returns:
-
-
-
-
-
-@buf:
-
-
-
-
-
-
-@audiosink:
-@channels:
-
-
-Generic connection between elements.
-
-
-
+
-
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@Returns:
+
+
+
+Use this macro to show debugging info. This is only usefull when developing new
+plugin elements.
+If you #define DEBUG_ENABLED before including gst/gst.h, this macro will produce
+g_print messages.
+
+
+@format: the format specification as in g_print
+@args...: arguments
+
+
-
+
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@element:
-@format:
-@args...:
-
-
-
-
-
-
-@obj:
-
-
+
@@ -655,19 +289,167 @@ or a video card.
-
+
-@esdsink:
-@channels:
+@name:
+@Returns:
-
+
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@connection:
+
+
+
+This macro checks to see if the GST_SRC_ASYNC flag is set.
+
+
+@obj: GstSrc to check for flag in.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@arg:
+
+
+GstEsdSink
+
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+A connection is a bas class for a generic connection between
+elements. A connection is typically a bas class for queues.
+
+
+
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@pad:
+@buf:
+
+
+
+
+
+
+@id:
+@src:
@@ -676,107 +458,101 @@ or a video card.
@Returns:
-
+
-@obj:
+@pad:
+@buf:
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Query whether this object has multiple input pads.
-
-
-
-@obj: Element to query for multiple input pads.
-
-
-
-
-
-
-@name:
-@fd:
-@Returns:
-
-
+
+@cat:
@format:
@args...:
-
+
+
+
+
+
+@id:
+@Returns:
+
+
-
+
-
+
-
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+
+
@obj:
-
+
+
+
+
+
+@obj:
+
+
-
+
+@obj:
-
-
-
-
+
+GstColorSpace
-
+
@@ -789,252 +565,37 @@ Query whether this object has multiple input pads.
@obj:
-
-
-
-
-
-@pad:
-@pull:
-
-
-
-
-
-
-@Returns:
-
-
+
@obj:
-
+
-
-
-
-
-
-
-
-
-
-
-
-@src:
-
-
-
-The signal to indicate the mime type was detected.
-
-
-@gsttypefind: the object which received the signal.
-@arg1: The mime type that was detected
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Get the current offset in the file.
-
-
-
-
-
-
-
-
-@format:
-@args...:
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
+
+@id:
@Returns:
-
-
-Specify the current offset in the file.
-
+
+Take data in and spit data out
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-Is trigered whenever a new pad is added to an element
-
-
-@gstelement: the object which received the signal.
-@arg1: the new pad that was added
-
Filters take data in and spit data out. They are the main Element in a filter graph.
@@ -1044,27 +605,326 @@ on its own.
-
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+
+
+
+@format:
+@args...:
+
+
@obj:
-
+
@obj:
-
+
+
+
+
+
+@src:
+
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+
+
+
+
+
@obj:
+
+GstGetbits
+
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@element:
+@format:
+@args...:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@src:
+@offset:
+@size:
+
+
+
+
+
+
+@src:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+
+
+
+@name:
+@Returns:
+
+
+
+
+
+
+@klass:
+
+
+
+A GstSrc is the start of a filter graph. It typically is a file or an
+audio source. It provides data for the next element in the graph.
+
+
+
+
+
+
+
+
+
+@pad:
+@buf:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@esdsink:
+@channels:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+
+
+GstSrc
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+The frequency.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+This macro unsets the given state on the element.
+
+
+@obj: Element to unset state of.
+@flag: State to unset, can be any number of bits in guint32.
+
+
+
+
+
+
+
+
+
+This macro returns the entire set of flags for the object.
+
+
+@obj: GstSrc to return flags for.
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+@klass:
+
+
+The start point of a filter graph
+
+
@@ -1072,42 +932,134 @@ on its own.
@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@obj:
-
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+@parent:
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@format:
+@args...:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+GstConnection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This macro sets the given state on the element.
+
+
+@obj: Element to set state of.
+@flag: State to set, can be any number of bits in guint32.
+
+
-@pad:
-@caps:
@@ -1116,20 +1068,104 @@ on its own.
@klass:
-
+
+
+
+
+
+@GST_CAPS_ALWAYS:
+@GST_CAPS_MAYBE:
+
+
@obj:
-
+
+Generic connection between elements.
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+@esdsink:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@obj:
+
+
+plugin
+
+
+
+
+
+
+
+
+
+
+
+
+
+@pad:
+@buf:
+
+
@@ -1143,39 +1179,363 @@ on its own.
@name:
@Returns:
-
+
@obj:
-
+
-@name:
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This macro usets the given flags.
+
+
+@src:
+@flag: Flag to set, must be a single bit in guint32.
+@obj: GstSrc to unset flag in.
+
+
+
+
+
+
+@audiosink:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@pad:
@Returns:
-
-
-
-
-
-
-
+
@obj:
-
+
+@obj:
+
+
+
+A flag indicating that SSE instructions are supported.
+
+
+
+
+
+
+
+
+@pad:
+@id:
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The end point of a filter graph
+
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+@pad:
+@caps:
+
+
+
+
+
+
+@obj:
+
+
+
+This macro checks to see if the given state is set.
+
+
+@obj: Element to check for state.
+@flag: State to check for, must be a single bit in guint32.
+
+
+
+
+
+
+@type:
+@parent:
+@Returns:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+This macro sets the given flags.
+
+
+@src:
+@flag: Flag to set, can by any number of bits in guint32.
+@obj: GstSrc to set flag in.
+
+
+
+Query a GstSrc for the ASYNC flag
+
+
+@obj: The GstSrc to query
+
+
+
+
+
+
+
+
+
+
+
+@argc:
+@argv:
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GstSink
+
+
+
+
+
+
+
+@sinkid:
+@srcid:
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+@connection:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@buf:
@@ -1183,7 +1543,52 @@ on its own.
-
+
+
+Query the element for the current mime type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+@element:
+@state:
+@Returns:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+
+
@@ -1196,63 +1601,37 @@ on its own.
@klass:
-
+
-
+
-@obj:
+@GST_PROPS_END_ID_NUM:
+@GST_PROPS_LIST_ID_NUM:
+@GST_PROPS_INT_ID_NUM:
+@GST_PROPS_INT_RANGE_ID_NUM:
+@GST_PROPS_FOURCC_ID_NUM:
+@GST_PROPS_BOOL_ID_NUM:
-
-
-
-
-
-@src:
-
-
-
-
-
-
-@id:
-@sink:
-
-
-
-
-
-
-@obj:
-
-
+
-
+
-This macro returns the entire set of flags for the object.
-
-
-@obj: GstSrc to return flags for.
-
-
-GstGetbits
-
-
-
-
-The filedescriptor to write to.
+
+@esdsink:
+@frequency:
@@ -1260,14 +1639,43 @@ Get the size of the current file.
-
+
+
+subclass use this to start their flag enumeration
+
+
+
+
-@klass:
+@element:
+@object:
+@format:
+@args...:
-
+
+
+Flags for the GstSrc element
+
+
+@GST_SRC_ASYNC: Indicates that this src is asynchronous
+@GST_SRC_FLAG_LAST: subclasses can use this to number their flags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1275,16 +1683,52 @@ Get the size of the current file.
@name:
@Returns:
-
-The start point of a filter graph
-
-
-
+
+
+
+
+
+@audiosink:
+@channels:
+
+
+
+
+
+
+
+
+
+
+
+
+@thread:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
-@src:
@@ -1293,23 +1737,92 @@ The start point of a filter graph
@obj:
-
+
+
+
+
+
+@elementfactory:
+@id:
+
+
-@sinkid:
-@srcid:
@Returns:
-
+
+
+
+
+
+
+
+
+
+
+
+@pad:
+@Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+@pad:
+@buf:
+
+
+
+
+
+
+
+
+
+
+
+
+@pad:
+@buf:
+
+
+
+
+
+
+@klass:
+
+
@obj:
-
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@klass:
+
+
@@ -1328,221 +1841,6 @@ The start point of a filter graph
@src:
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@id:
-@Returns:
-
-
-
-
-
-
-@esdsink:
-@frequency:
-
-
-
-The number of bytes per read.
-
-
-
-
-
-The filedescriptor to read from. Pass the argument as a char* (???)
-
-
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@obj:
-
-
-
-The audio format as defined in soundcard.h
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-@audiosink:
-
-
-
-
-
-
-@elementfactory:
-@id:
-
-
-
-
-
-
-@obj:
-
-
-
-This macro unsets the given state on the element.
-
-
-@obj: Element to unset state of.
-@flag: State to unset, can be any number of bits in guint32.
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@pad:
-@id:
-
-
-
-
-
-
-
-
-
-The fequency.
-
-
-
-
-
-
-
-
-@Returns:
-
-
-
-The format ad defined in soundcard.h
-
-
-
@@ -1551,13 +1849,7 @@ The format ad defined in soundcard.h
@audiosink:
@frequency:
-
-
-
-
-
-
-
+
@@ -1570,134 +1862,6 @@ The format ad defined in soundcard.h
@elementfactory:
-
-
-The number of bytes per read.
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-@argc:
-@argv:
-@Returns:
-
-
-
-
-
-
-@obj:
-
-
-
-The buffer is sent to the sound card.
-
-
-@gstaudiosink: the object which received the signal.
-@arg1: the audiosink.
-
-
-
-Specify the location of the file to read.
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@gstelement: the object which received the signal.
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@element:
-@object:
-@format:
-@args...:
-
-
-
-TRUE if the thread should be created.
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@pad:
-@buf:
-
-
-
-
-
-
-
@@ -1705,79 +1869,160 @@ TRUE if the thread should be created.
@Returns:
-
+
-@klass:
+@meta:
-
-
-A connection is a bas class for a generic connection between
-elements. A connection is typically a bas class for queues.
-
-
-
-
-
-
-
-
-
-@buf:
-
-
-
-Query a GstSrc for the ASYNC flag
-
-
-@obj: The GstSrc to query
-
-
-
-
-
-
-@obj:
-
-
-
-This macro sets the given state on the element.
-
-
-@obj: Element to set state of.
-@flag: State to set, can be any number of bits in guint32.
-
-
-
-
-
-
-@pad:
-@buf:
-
-
-
-
-
-
-
-
+
@Returns:
-
+
-@gstfakesink: the object which received the signal.
+@Returns:
-
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+GstElement
+
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@pad:
+@pull:
+
+
+
+
+
+
+
+
+
+
+
+
+@esdsink:
+@format:
+
+
+
+Query whether this object has multiple input pads.
+
+
+
+@obj: Element to query for multiple input pads.
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+
+
@@ -1790,56 +2035,124 @@ This macro sets the given state on the element.
@obj:
-
-
-
-
+
-
-
-
-
-
-
+
@src:
-@offset:
-@size:
-
+
-@Returns:
+@klass:
-
-
-
-
-
-
-
+
@obj:
-
+
-@format:
-@args...:
+@obj:
-
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+
+
+
+
+
+
+@name:
+@fd:
+@Returns:
+
+
+GstFilter
+
+
+
+
+
+
+
+@elementfactory:
+@id:
+
+
+
+
+
+
+@buf:
+
+
+
+
+
+
+@pad:
+@Returns:
+
+
+
+
+
+
+@audiosink:
+@format:
+
+
+
+
+
+
+@klass:
+
+
+
+
+
+
+@obj:
+
+
+
+
+
+
+@Returns:
+
+
@@ -1856,147 +2169,20 @@ This macro sets the given state on the element.
@format:
@args...:
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-@id:
-@src:
-
-
-
-
-
-
-
-
-
-
-
-
-@Returns:
-
-
+
@obj:
-
-
-
-
-
-
-
+
@obj:
-
-Take data in and spit data out
-
-
-
-
-This macro checks to see if the GST_SRC_ASYNC flag is set.
-
-
-@obj: GstSrc to check for flag in.
-
-
-
-
-
-
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-A flag indicating that SSE instructions are supported.
-
-
-
-
-
-
-
-
-@esdsink:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@connection:
-
-
-
-is signaled whenever a new GstElement is added to the GstBin
-
-
-
-@gstbin: the object which received the signal.
-@arg1: the element that was added
-
-
-
-
-
-
-
@@ -2005,523 +2191,12 @@ is signaled whenever a new GstElement is added to the
+
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-GstFilter
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@gstfakesrc: the object which received the signal.
-
-
-
-
-
-
-@GST_PROPS_END_ID_NUM:
-@GST_PROPS_LIST_ID_NUM:
-@GST_PROPS_INT_ID_NUM:
-@GST_PROPS_INT_RANGE_ID_NUM:
-@GST_PROPS_FOURCC_ID_NUM:
-@GST_PROPS_BOOL_ID_NUM:
-
-
-
-
-
-
-@pad:
-@Returns:
-
-
-
-
-
-
-@pad:
-@Returns:
-
-
-
-
-
-
-@thread:
-
-
-
-
-
-
-@GST_CAPS_ALWAYS:
-@GST_CAPS_MAYBE:
-
-
-
-Get the current offset in the file.
-
-
-
-
-
-Sets the command to be executed.
-
-
-
-
-
-
-
-
-
-
-
-Flags for the GstSrc element
-
-
-@GST_SRC_ASYNC: Indicates that this src is asynchronous
-@GST_SRC_FLAG_LAST: subclasses can use this to number their flags
-
-
-
-Specify the maximum number of buffers in the queue before the queue
-blocks.
-
-
-
-
-
-Get the number of buffers in the queue.
-
-
-
-
-
-
-
-
-@obj:
-
-
-GstColorSpace
-
-
-
-
-
-
-
-
-
-
-
-
-
-@element:
-@state:
-@Returns:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-Specify the location of the file to read.
-
-
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-
-
-
-@parent:
-@Returns:
-
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-
-
-
-
-
-
-
-
-
-@format:
-@args...:
-
-
-
-
-
-
-@audiosink:
-@format:
-
-
-
-
-
-
-@obj:
-
-
-The end point of a filter graph
-
-
-
-
-
-
-
-@cat:
-@format:
-@args...:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-Get the current number of bytes read.
-
-
-
-
-
-The number of channels (mono, stereo, ...)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-plugin
-
-
-
-
-This macro checks to see if the given state is set.
-
-
-@obj: Element to check for state.
-@flag: State to check for, must be a single bit in guint32.
-
-
-
-
-
-
-@gstobject: the object which received the signal.
-@arg1: the new parent
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@obj:
-
-
-
-Is trigered whenever an error occured
-
-
-
-@gstelement: the object which received the signal.
-@arg1: the error message
-
-
-
-
-
-
-
-
-
-This macro sets the given flags.
-
-
-@src:
-@flag: Flag to set, can by any number of bits in guint32.
-@obj: GstSrc to set flag in.
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-@obj:
-
-
-
-
-
-
-@klass:
-
-
-
-
-
-
-
-
-
-Indicates this pad is active
-
-
-
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-@name:
-@Returns:
-
-
-
-A GstSrc is the start of a filter graph. It typically is a file or an
-audio source. It provides data for the next element in the graph.
-
-
-
-
-
-
-
-
-
-
-
-GstSink
-
-
A flag indicating that MMX instructions are supported.
diff --git a/docs/gst/tmpl/gstsinesrc.sgml b/docs/gst/tmpl/gstsinesrc.sgml
index 687c03392d..7768424330 100644
--- a/docs/gst/tmpl/gstsinesrc.sgml
+++ b/docs/gst/tmpl/gstsinesrc.sgml
@@ -14,3 +14,23 @@ Create a sine wave of a given frequency and volume.
+
+
+The volume as a double 0.0 is silent, 1.0 is loudest.
+
+
+
+
+The format ad defined in soundcard.h
+
+
+
+
+The number of channels.
+
+
+
+
+The fequency.
+
+
diff --git a/docs/gst/tmpl/gstthread.sgml b/docs/gst/tmpl/gstthread.sgml
index 659af8e5a5..1a0aed88c8 100644
--- a/docs/gst/tmpl/gstthread.sgml
+++ b/docs/gst/tmpl/gstthread.sgml
@@ -43,3 +43,9 @@ thread flags
@Returns:
+
+
+TRUE if the thread should be created.
+
+
+
diff --git a/docs/gst/tmpl/gsttypefind.sgml b/docs/gst/tmpl/gsttypefind.sgml
index 4fb5972710..ace6c21877 100644
--- a/docs/gst/tmpl/gsttypefind.sgml
+++ b/docs/gst/tmpl/gsttypefind.sgml
@@ -15,3 +15,16 @@ the detected mime type of the stream. It is used in autoplugging.
+
+
+The signal to indicate the mime type was detected.
+
+
+@gsttypefind: the object which received the signal.
+@arg1: The mime type that was detected
+
+
+
+
+
+
diff --git a/docs/manual/Makefile.am b/docs/manual/Makefile.am
index 2da008035b..4caef094b3 100644
--- a/docs/manual/Makefile.am
+++ b/docs/manual/Makefile.am
@@ -12,7 +12,6 @@ sgml_files = gstreamer-manual.sgml \
dynamic.sgml \
elements.sgml \
factories.sgml \
- ghostpads.sgml \
goals.sgml \
helloworld.sgml \
helloworld2.sgml \
diff --git a/docs/manual/bins.sgml b/docs/manual/bins.sgml
index e9069b326c..eb89b4c475 100644
--- a/docs/manual/bins.sgml
+++ b/docs/manual/bins.sgml
@@ -41,31 +41,119 @@
-
- The application programmer can create custom bins packed with elements to perform a
- specific task. This allow you to write an MPEG audio decoder with just the follwing lines
- of code:
-
+
+ Creating a bin
+
+ You create a bin with a specified name 'mybin' with:
+
-
- // create the mp3player element
- GstElement *mp3player = gst_elementfactory_make("mp3player","mp3player");
- // set the source mp3 audio file
- gtk_object_set(GTK_OBJECT(mp3player), "location", "helloworld.mp3", NULL);
- // tell the mp3player to prepare itself
- gst_element_set_state(GST_ELEMENT(mp3player),GST_STATE_READY);
- // start playback
- gst_element_set_state(GST_ELEMENT(mp3player),GST_STATE_PLAYING);
- ...
- // pause playback
- gst_element_set_state(GST_ELEMENT(mp3player),GST_STATE_PAUSED);
- ...
- // stop
- gst_element_set_state(GST_ELEMENT(mp3player),GST_STATE_NULL);
+ GstElement *bin;
+
+ gst_bin_new ("mybin");
+ ...
+
+ A thread can be created with:
+
+
+ GstElement *thread;
+
+ gst_thread_new ("mythread");
+ ...
+
+
+ Pipelines are created with gst_pipeline_new ("name");
+
+
- Custom bins can be created with a plugin or an XML description.
-
+
+ Adding elements to a bin
+
+ Elements are added to a bin with the following code sample:
+
+
+ GstElement *element;
+ GstElement *bin;
+
+ bin = gst_bin_new ("mybin");
+
+ element = gst_elementfactory_make ("mpg123", "decoder");
+ gst_bin_add (GST_BIN (bin), element);
+ ...
+
+
+ Bins and threads can be added to other bins too. This allows you to create nested
+ bins.
+
+
+ To get an element from the bin you can use:
+
+
+ GstElement *element;
+
+ element = gst_bin_get_by_name (GST_BIN (bin), "decoder");
+ ...
+
+
+ You can see that the name of the element becomes very handy for retrieving the
+ element from an bin by using the elements name. gst_bin_get_by_name () will
+ recursively search nested bins.
+
+
+ To get a list of elements in a bin, use:
+
+
+ GList *elements;
+
+ elements = gst_bin_get_list (GST_BIN (bin));
+
+ while (elements) {
+ GstElement *element = GST_ELEMENT (elements->data);
+
+ g_print ("element in bin: %s\n", gst_element_get_name (element));
+
+ elements = g_list_next (elements);
+ }
+ ...
+
+
+ To remove an element from a bin use:
+
+
+ GstElement *element;
+
+ gst_bin_remove (GST_BIN (bin), element);
+ ...
+
+
+
+
+ Custom bins
+
+ The application programmer can create custom bins packed with elements to perform a
+ specific task. This allow you to write an MPEG audio decoder with just the follwing lines
+ of code:
+
+
+
+ // create the mp3player element
+ GstElement *mp3player = gst_elementfactory_make("mp3player","mp3player");
+ // set the source mp3 audio file
+ gtk_object_set(GTK_OBJECT(mp3player), "location", "helloworld.mp3", NULL);
+ // start playback
+ gst_element_set_state(GST_ELEMENT(mp3player),GST_STATE_PLAYING);
+ ...
+ // pause playback
+ gst_element_set_state(GST_ELEMENT(mp3player),GST_STATE_PAUSED);
+ ...
+ // stop
+ gst_element_set_state(GST_ELEMENT(mp3player),GST_STATE_NULL);
+
+
+ Custom bins can be created with a plugin or an XML description. You will find more
+ information about creating custom bin in the Filter-Writers-Guide.
+
+
Ghostpads
@@ -76,7 +164,8 @@
A ghostpad is a pad from some element in the bin that has been promoted to the bin.
This way, the bin also has a pad. The bin becomes just another element with a pad and
- you can then use the bin just like any other element.
+ you can then use the bin just like any other element. This is a very important feature
+ for creating custom bins.
+
+ Ghostpads can actually be added to all GstElements and not just
+ GstBins. Use the following code example to add a ghostpad to a bin:
+
+
+ GstElement *bin;
+ GstElement *element;
+
+ element = gst_elementfactory_create ("mpg123", "decoder");
+ bin = gst_bin_new ("mybin");
+
+ gst_bin_add (GST_BIN (bin), element);
+
+ gst_element_add_ghost_pad (bin, gst_element_get_pad (element, "sink"));
+
+
+
+ In the above example, the bin now also has a pad: the pad called 'sink' of the
+ given element. We can now, for example, connect the srcpad of a disksrc to the
+ bin with:
+
+
+ GstElement *disksrc;
+
+ disksrc = gst_elementfactory_create ("disksrc", "disk_reader");
+
+ gst_element_connect (disksrc, "src", bin, "sink");
+ ...
+
diff --git a/docs/manual/connections.sgml b/docs/manual/connections.sgml
index 814aaf1065..ca352dc240 100644
--- a/docs/manual/connections.sgml
+++ b/docs/manual/connections.sgml
@@ -21,4 +21,41 @@
audiocard. We will use this simple graph to construct an mpeg player later
in this manual.
+
+ You can connect two pads with:
+
+
+ GstPad *srcpad, *sinkpad;
+
+ srcpad = gst_element_get_pad (element1, "src");
+ sinpad = gst_element_get_pad (element2, "sink");
+
+ // connect them
+ gst_pad_connect (srcpad, sinkpad);
+ ....
+ // and disconnect them
+ gst_pad_disconnect (srcpad, sinkpad);
+
+
+
+ A convenient shortcut for the above code is done with the gst_element_connect ()
+ function:
+
+
+
+ // connect them
+ gst_element_connect (element1, "src", element2, "sink");
+ ....
+ // and disconnect them
+ gst_element_disconnect (element1, "src", element2, "sink");
+
+
+
+ You can query if a pad is connected with GST_PAD_IS_CONNECTED (pad).
+
+
+ To query for the GstPad this srcpad is connected to, use
+ gst_pad_get_peer (srcpad).
+
+
diff --git a/docs/manual/elements.sgml b/docs/manual/elements.sgml
index 84f8c8e2f1..0702fc9818 100644
--- a/docs/manual/elements.sgml
+++ b/docs/manual/elements.sgml
@@ -93,4 +93,53 @@
+
+ Creating a GstElement
+
+ GstElements are created from factories. To create an element, one has to get
+ access the a GstElementFactory using a unique factoryname.
+
+
+ The following code example is used to get a factory that can be used to create the
+ mpg123 element, an mp3 decoder.
+
+
+ GstElementFactory *factory;
+
+ factory = gst_elementfactory_find ("mpg123");
+
+
+ Once you have the handle to the elementfactory, you can create a real element with
+ the following code fragment:
+
+
+ GstElement *element;
+
+ element = gst_elementfactory_create (factory, "decoder");
+
+
+ gst_elementfactory_create () will use the elementfactory to create an element with the
+ given name. The name of the element is something you can use later on to lookup the
+ element in a bin, for example.
+
+
+ A simple shortcut exists for creating an element from a factory. The following example
+ creates an element, named "decoder" from the elementfactory named "mpg123". This
+ convenient function is most widly used to create an element.
+
+
+ GstElement *element;
+
+ element = gst_elementfactory_make ("mpg123", "decoder");
+
+
+ An element can be destroyed with:
+
+
+ GstElement *element;
+
+ ...
+ gst_element_destroy (element);
+
+
diff --git a/docs/manual/ghostpads.sgml b/docs/manual/ghostpads.sgml
deleted file mode 100644
index 276ab416d5..0000000000
--- a/docs/manual/ghostpads.sgml
+++ /dev/null
@@ -1,6 +0,0 @@
-
- Ghostpads
-
-
-
-
diff --git a/docs/manual/gstreamer-manual.sgml b/docs/manual/gstreamer-manual.sgml
index be062eae77..06d9b221bd 100644
--- a/docs/manual/gstreamer-manual.sgml
+++ b/docs/manual/gstreamer-manual.sgml
@@ -18,7 +18,6 @@
-
@@ -98,6 +97,8 @@
&ELEMENTS;
+ &PLUGINS;
+
&PADS;
&CONNECTIONS;
@@ -107,6 +108,7 @@
&BUFFERS;
&STATES;
+
@@ -151,8 +153,6 @@
&DYNAMIC;
- &GHOSTPADS;
-
&TYPEDETECTION;
&UTILITY;
@@ -173,19 +173,6 @@
&XML;
-
-
- plugin development in GStreamer
-
-
-
- In this part we will describe how you can create a new plugin
- to be used in GStreamer.
-
-
-
- &PLUGINS;
-
diff --git a/docs/manual/helloworld.sgml b/docs/manual/helloworld.sgml
index f4acf28185..f9802e01c6 100644
--- a/docs/manual/helloworld.sgml
+++ b/docs/manual/helloworld.sgml
@@ -138,7 +138,7 @@ main (int argc, char *argv[])
bin = gst_bin_new ("bin");
- We use the standard constructor for a bin: gst_bin_new ("
+ We use the standard constructor for a bin: gst_bin_new ("name").
diff --git a/docs/manual/pads.sgml b/docs/manual/pads.sgml
index 5a7fbf050d..357bb3f6ec 100644
--- a/docs/manual/pads.sgml
+++ b/docs/manual/pads.sgml
@@ -9,6 +9,55 @@
The description of this media type is done with capabilities (GstCaps)
+
+ Getting pads from an element
+
+ Once you have created an element, you can get one of its pads with:
+
+
+ GstPad *srcpad;
+ ...
+ srcpad = gst_element_get_pad (element, "src");
+ ...
+
+
+ This function will get the pad named "src" from the given element.
+
+
+ Alternatively, you can also request a GList of pads from the element. The following
+ code example will print the names of all the pads of an element.
+
+
+ GList *pads;
+ ...
+ pads = gst_element_get_pad_list (element);
+ while (pads) {
+ GstPad *pad = GST_PAD (pads->data);
+
+ g_print ("pad name %s\n", gst_pad_get_name (pad));
+
+ pads = g_list_next (pads);
+ }
+ ...
+
+
+ Usefull pad functions
+
+ You can get the name of a pad with gst_pad_get_name () and set its name with
+ get_pad_set_name();
+
+
+ gst_pad_get_direction (GstPad *pad) can be used to query if the pad is a sink
+ or a src pad. Remember a src pad is a pad that can output data and a sink pad is
+ one that accepts data.
+
+
+ You can get the parent of the pad, this is the element that this pad belongs to,
+ with get_pad_set_parent(GstPad *pad). This function will return a pointer to a
+ GstObject.
+
+
+
Capabilities of a GstPad
@@ -136,6 +185,30 @@ Pads:
+
+ Getting the capabilities of a pad
+
+ A pad can have a GList of capabilities attached to it. You can get the capabilities list
+ with:
+
+
+ GList *caps;
+ ...
+ caps = gst_pad_get_caps_list (pad);
+
+ g_print ("pad name %s\n", gst_pad_get_name (pad));
+
+ while (caps) {
+ GstCaps *cap = (GstCaps *) caps->data;
+
+ g_print (" Capability name %s, MIME type\n", gst_caps_get_name (cap),
+ gst_caps_get_mime (cap));
+
+ caps = g_list_next (caps);
+ }
+ ...
+
+
diff --git a/docs/manual/plugins.sgml b/docs/manual/plugins.sgml
index 00ffa18986..4f7c57cbed 100644
--- a/docs/manual/plugins.sgml
+++ b/docs/manual/plugins.sgml
@@ -1,6 +1,63 @@
- Plugin development
+ What are Plugins
+ A plugin is a shared library that contains at least one of the following items:
+
+
+
+ one or more elementfactories
+
+
+
+
+ one or more typedefinitions
+
+
+
+
+ The plugins have one simple method: plugin_init () where all the elementfactories are
+ created and the typedefinitions are registered.
+
+
+ the plugins are maintained in the plugin system. Optionally, the typedefinitions and
+ the elementfactories can be saved into an XML representation so that the plugin system
+ does not have to load all available plugins in order to know their definition.
+
+
+
+ The basic plugin structure has the following fields:
+
+
+struct _GstPlugin {
+ gchar *name; /* name of the plugin */
+ gchar *longname; /* long name of plugin */
+ gchar *filename; /* filename it came from */
+
+ GList *types; /* list of types provided */
+ gint numtypes;
+ GList *elements; /* list of elements provided */
+ gint numelements;
+
+ gboolean loaded; /* if the plugin is in memory */
+};
+
+
+
+ You can query a GList of available plugins with:
+
+
+ GList *plugins;
+
+ plugins = gst_plugin_get_list ();
+
+ while (plugins) {
+ GstPlugin *plugin = (GstPlugin *)plugins->data;
+
+ g_print ("plugin: %s\n", gst_plugin_get_name (plugin));
+
+ plugins = g_list_next (plugins);
+ }
+
diff --git a/docs/manuals.mak b/docs/manuals.mak
index 91940a63fb..4bba6ae992 100644
--- a/docs/manuals.mak
+++ b/docs/manuals.mak
@@ -15,6 +15,7 @@ $(manualname)/$(htmlname): $(sgml_files) $(png_files)
else
$(manualname)/$(htmlname): $(sgml_files)
endif
+
if HAVE_DB2HTML
db2html $(manualname).sgml
else
diff --git a/gst/elements/gstesdsink.c b/gst/elements/gstesdsink.c
deleted file mode 100644
index 887a8641a0..0000000000
--- a/gst/elements/gstesdsink.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen
- * 2000 Wim Taymans
- *
- * gstesdsink.c:
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
diff --git a/gst/elements/gstesdsink.h b/gst/elements/gstesdsink.h
deleted file mode 100644
index 61f0342e32..0000000000
--- a/gst/elements/gstesdsink.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen
- * 2000 Wim Taymans
- *
- * gstesdsink.h:
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-#ifndef __GST_ESDSINK_H__
-#define __GST_ESDSINK_H__
-
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define GST_TYPE_ESDSINK \
- (gst_esdsink_get_type())
-#define GST_ESDSINK(obj) \
- (GTK_CHECK_CAST((obj),GST_TYPE_ESDSINK,GstEsdSink))
-#define GST_ESDSINK_CLASS(klass) \
- (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_ESDSINK,GstEsdSinkClass))
-#define GST_IS_ESDSINK(obj) \
- (GTK_CHECK_TYPE((obj),GST_TYPE_ESDSINK))
-#define GST_IS_ESDSINK_CLASS(obj) \
- (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ESDSINK))
-
-typedef struct _GstEsdSink GstEsdSink;
-typedef struct _GstEsdSinkClass GstEsdSinkClass;
-
-struct _GstEsdSink {
- GstFilter filter;
-
- GstPad *sinkpad;
-
- /* soundcard state */
-
- int fd;
- gint format;
- gint channels;
- gint frequency;
-};
-
-struct _GstEsdSinkClass {
- GstFilterClass parent_class;
-
- /* signals */
- void (*handoff) (GstElement *element,GstPad *pad);
-};
-
-GtkType gst_esdsink_get_type(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __GST_ESDSINK_H__ */
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 09199cb0d3..9c8b0e7de9 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -145,7 +145,7 @@ gst_bin_init (GstBin *bin)
* Returns: new bin
*/
GstElement*
-gst_bin_new (gchar *name)
+gst_bin_new (const gchar *name)
{
return gst_elementfactory_make ("bin", name);
}
@@ -391,7 +391,7 @@ gst_bin_real_destroy (GtkObject *object)
*/
GstElement*
gst_bin_get_by_name (GstBin *bin,
- gchar *name)
+ const gchar *name)
{
GList *children;
GstElement *child;
diff --git a/gst/gstbin.h b/gst/gstbin.h
index d5ddad9d08..1c192deb7c 100644
--- a/gst/gstbin.h
+++ b/gst/gstbin.h
@@ -109,7 +109,7 @@ struct __GstBinChain {
GtkType gst_bin_get_type (void);
-GstElement* gst_bin_new (gchar *name);
+GstElement* gst_bin_new (const gchar *name);
#define gst_bin_destroy(bin) gst_object_destroy(GST_OBJECT(bin))
/* add and remove elements from the bin */
@@ -120,7 +120,7 @@ void gst_bin_remove (GstBin *bin,
/* retrieve a single element or the list of children */
GstElement* gst_bin_get_by_name (GstBin *bin,
- gchar *name);
+ const gchar *name);
GList* gst_bin_get_list (GstBin *bin);
void gst_bin_create_plan (GstBin *bin);
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index ce79539832..17f5cfee81 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -35,7 +35,7 @@ _gst_caps_initialize (void)
}
static guint16
-get_type_for_mime (gchar *mime)
+get_type_for_mime (const gchar *mime)
{
guint16 typeid;
@@ -62,7 +62,7 @@ get_type_for_mime (gchar *mime)
* Returns: a new capability
*/
GstCaps*
-gst_caps_new (gchar *name, gchar *mime)
+gst_caps_new (const gchar *name, const gchar *mime)
{
GstCaps *caps;
@@ -88,7 +88,7 @@ gst_caps_new (gchar *name, gchar *mime)
* Returns: a new capability
*/
GstCaps*
-gst_caps_new_with_props (gchar *name, gchar *mime, GstProps *props)
+gst_caps_new_with_props (const gchar *name, const gchar *mime, GstProps *props)
{
GstCaps *caps;
@@ -156,6 +156,110 @@ gst_caps_register_count (GstCapsFactory *factory, guint *counter)
return caps;
}
+/**
+ * gst_caps_get_name:
+ * @caps: the caps to get the name from
+ *
+ * get the name of a GstCaps structure
+ *
+ * Returns: The name of the caps
+ */
+const gchar*
+gst_caps_get_name (GstCaps *caps)
+{
+ g_return_val_if_fail (caps != NULL, NULL);
+
+ return (const gchar *)caps->name;
+}
+
+/**
+ * gst_caps_set_name:
+ * @caps: the caps to set the name to
+ * @name: the name to set
+ *
+ * set the name of a caps
+ */
+void
+gst_caps_set_name (GstCaps *caps, const gchar *name)
+{
+ g_return_if_fail (caps != NULL);
+
+ if (caps->name)
+ g_free (caps->name);
+
+ caps->name = g_strdup (name);
+}
+
+/**
+ * gst_caps_get_mime:
+ * @caps: the caps to get the mime type from
+ *
+ * get the mime type of the caps as a string
+ *
+ * Returns: The mime type of the caps
+ */
+const gchar*
+gst_caps_get_mime (GstCaps *caps)
+{
+ GstType *type;
+
+ g_return_val_if_fail (caps != NULL, NULL);
+
+ type = gst_type_find_by_id (caps->id);
+
+ if (type)
+ return type->mime;
+ else
+ return "unknown/unknown";
+}
+
+/**
+ * gst_caps_set_mime:
+ * @caps: the caps to set the mime type to
+ * @mime: the mime type to attach to the caps
+ *
+ * set the mime type of the caps as a string
+ */
+void
+gst_caps_set_mime (GstCaps *caps, const gchar *mime)
+{
+ g_return_if_fail (caps != NULL);
+ g_return_if_fail (mime != NULL);
+
+ caps->id = get_type_for_mime (mime);
+}
+
+/**
+ * gst_caps_get_type_id:
+ * @caps: the caps to get the type id from
+ *
+ * get the type id of the caps
+ *
+ * Returns: The type id of the caps
+ */
+guint16
+gst_caps_get_type_id (GstCaps *caps)
+{
+ g_return_val_if_fail (caps != NULL, 0);
+
+ return caps->id;
+}
+
+/**
+ * gst_caps_set_type_id:
+ * @caps: the caps to set the type id to
+ * @typeid: the type id to set
+ *
+ * set the type id of the caps
+ */
+void
+gst_caps_set_type_id (GstCaps *caps, guint16 typeid)
+{
+ g_return_if_fail (caps != NULL);
+
+ caps->id = typeid;
+}
+
/**
* gst_caps_set_props:
* @caps: the caps to attach the properties to
diff --git a/gst/gstcaps.h b/gst/gstcaps.h
index d4acb0af9c..a9282fe045 100644
--- a/gst/gstcaps.h
+++ b/gst/gstcaps.h
@@ -42,11 +42,20 @@ struct _GstCaps {
/* initialize the subsystem */
void _gst_caps_initialize (void);
-GstCaps* gst_caps_new (gchar *name, gchar *mime);
-GstCaps* gst_caps_new_with_props (gchar *name, gchar *mime, GstProps *props);
+GstCaps* gst_caps_new (const gchar *name, const gchar *mime);
+GstCaps* gst_caps_new_with_props (const gchar *name, const gchar *mime, GstProps *props);
GstCaps* gst_caps_register (GstCapsFactory *factory);
GstCaps* gst_caps_register_count (GstCapsFactory *factory, guint *counter);
+const gchar* gst_caps_get_name (GstCaps *caps);
+void gst_caps_set_name (GstCaps *caps, const gchar *name);
+
+const gchar* gst_caps_get_mime (GstCaps *caps);
+void gst_caps_set_mime (GstCaps *caps, const gchar *mime);
+
+guint16 gst_caps_get_type_id (GstCaps *caps);
+void gst_caps_set_type_id (GstCaps *caps, guint16 typeid);
+
GstCaps* gst_caps_set_props (GstCaps *caps, GstProps *props);
GstProps* gst_caps_get_props (GstCaps *caps);
diff --git a/gst/gstelement.c b/gst/gstelement.c
index 8c6f7b52c3..8ece79473b 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -231,7 +231,7 @@ gst_element_remove_ghost_pad (GstElement *element, GstPad *pad)
* Returns: requested pad if found, otherwise NULL.
*/
GstPad*
-gst_element_get_pad (GstElement *element, gchar *name)
+gst_element_get_pad (GstElement *element, const gchar *name)
{
GList *walk;
@@ -315,8 +315,8 @@ gst_element_get_padtemplate_list (GstElement *element)
* parents, the connection fails.
*/
void
-gst_element_connect (GstElement *src, gchar *srcpadname,
- GstElement *dest, gchar *destpadname)
+gst_element_connect (GstElement *src, const gchar *srcpadname,
+ GstElement *dest, const gchar *destpadname)
{
GstPad *srcpad,*destpad;
GstObject *srcparent,*destparent;
@@ -355,6 +355,44 @@ gst_element_connect (GstElement *src, gchar *srcpadname,
gst_pad_connect(srcpad,destpad);
}
+/**
+ * gst_element_disconnect:
+ * @src: element containing source pad
+ * @srcpadname: name of pad in source element
+ * @dest: element containing destination pad
+ * @destpadname: name of pad in destination element
+ *
+ * Disconnect the two named pads of the source and destination elements.
+ */
+void
+gst_element_disconnect (GstElement *src, const gchar *srcpadname,
+ GstElement *dest, const gchar *destpadname)
+{
+ GstPad *srcpad,*destpad;
+
+ g_return_if_fail (src != NULL);
+ g_return_if_fail (GST_IS_ELEMENT(src));
+ g_return_if_fail (srcpadname != NULL);
+ g_return_if_fail (dest != NULL);
+ g_return_if_fail (GST_IS_ELEMENT(dest));
+ g_return_if_fail (destpadname != NULL);
+
+ /* obtain the pads requested */
+ srcpad = gst_element_get_pad (src, srcpadname);
+ if (srcpad == NULL) {
+ GST_ERROR(src,"source element has no pad \"%s\"",srcpadname);
+ return;
+ }
+ destpad = gst_element_get_pad (dest, destpadname);
+ if (srcpad == NULL) {
+ GST_ERROR(dest,"destination element has no pad \"%s\"",destpadname);
+ return;
+ }
+
+ /* we're satisified they can be disconnected, let's do it */
+ gst_pad_disconnect(srcpad,destpad);
+}
+
/**
* gst_element_error:
* @element: Element with the error
@@ -364,7 +402,7 @@ gst_element_connect (GstElement *src, gchar *srcpadname,
* condition. It results in the "error" signal.
*/
void
-gst_element_error (GstElement *element, gchar *error)
+gst_element_error (GstElement *element, const gchar *error)
{
g_error("GstElement: error in element '%s': %s\n", element->name, error);
@@ -484,7 +522,7 @@ gst_element_change_state (GstElement *element)
* one.
*/
void
-gst_element_set_name (GstElement *element, gchar *name)
+gst_element_set_name (GstElement *element, const gchar *name)
{
g_return_if_fail (element != NULL);
g_return_if_fail (GST_IS_ELEMENT (element));
diff --git a/gst/gstelement.h b/gst/gstelement.h
index eff5846717..01f79b1db1 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -183,21 +183,23 @@ GstElement* gst_element_new (void);
void gst_element_set_loop_function (GstElement *element,
GstElementLoopFunction loop);
-void gst_element_set_name (GstElement *element, gchar *name);
+void gst_element_set_name (GstElement *element, const gchar *name);
const gchar* gst_element_get_name (GstElement *element);
void gst_element_set_manager (GstElement *element, GstElement *manager);
GstElement* gst_element_get_manager (GstElement *element);
void gst_element_add_pad (GstElement *element, GstPad *pad);
-GstPad* gst_element_get_pad (GstElement *element, gchar *name);
+GstPad* gst_element_get_pad (GstElement *element, const gchar *name);
GList* gst_element_get_pad_list (GstElement *element);
GList* gst_element_get_padtemplate_list (GstElement *element);
void gst_element_add_ghost_pad (GstElement *element, GstPad *pad);
void gst_element_remove_ghost_pad (GstElement *element, GstPad *pad);
-void gst_element_connect (GstElement *src, gchar *srcpadname,
- GstElement *dest, gchar *destpadname);
+void gst_element_connect (GstElement *src, const gchar *srcpadname,
+ GstElement *dest, const gchar *destpadname);
+void gst_element_disconnect (GstElement *src, const gchar *srcpadname,
+ GstElement *dest, const gchar *destpadname);
void gst_element_signal_eos (GstElement *element);
@@ -205,7 +207,7 @@ void gst_element_signal_eos (GstElement *element);
/* called by the app to set the state of the element */
gint gst_element_set_state (GstElement *element, GstElementState state);
-void gst_element_error (GstElement *element, gchar *error);
+void gst_element_error (GstElement *element, const gchar *error);
GstElementFactory* gst_element_get_factory (GstElement *element);
@@ -219,14 +221,14 @@ GstElement* gst_element_load_thyself (xmlNodePtr parent, GHashTable *elements);
* factories stuff
*
**/
-GstElementFactory* gst_elementfactory_new (gchar *name,GtkType type,
+GstElementFactory* gst_elementfactory_new (const gchar *name,GtkType type,
GstElementDetails *details);
void gst_elementfactory_destroy (GstElementFactory *elementfactory);
void gst_elementfactory_add_padtemplate (GstElementFactory *elementfactory,
GstPadTemplate *temp);
-GstElementFactory* gst_elementfactory_find (gchar *name);
+GstElementFactory* gst_elementfactory_find (const gchar *name);
GList* gst_elementfactory_get_list (void);
gboolean gst_elementfactory_can_src_caps (GstElementFactory *factory,
@@ -239,9 +241,9 @@ gboolean gst_elementfactory_can_sink_caps_list (GstElementFactory *factory,
GList *caps);
GstElement* gst_elementfactory_create (GstElementFactory *factory,
- gchar *name);
+ const gchar *name);
/* FIXME this name is wrong, probably so is the one above it */
-GstElement* gst_elementfactory_make (gchar *factoryname, gchar *name);
+GstElement* gst_elementfactory_make (const gchar *factoryname, const gchar *name);
xmlNodePtr gst_elementfactory_save_thyself (GstElementFactory *factory, xmlNodePtr parent);
GstElementFactory* gst_elementfactory_load_thyself (xmlNodePtr parent);
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index ef949606be..78c8af7399 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -61,7 +61,7 @@ gst_elementfactory_destroy (GstElementFactory *elementfactory)
* Returns: #GstElementFactory if found, NULL otherwise
*/
GstElementFactory*
-gst_elementfactory_find (gchar *name)
+gst_elementfactory_find (const gchar *name)
{
GList *walk;
GstElementFactory *factory;
@@ -107,7 +107,7 @@ gst_elementfactory_get_list (void)
* Returns: new elementfactory
*/
GstElementFactory*
-gst_elementfactory_new (gchar *name, GtkType type,
+gst_elementfactory_new (const gchar *name, GtkType type,
GstElementDetails *details)
{
GstElementFactory *factory = g_new0(GstElementFactory, 1);
@@ -138,7 +138,7 @@ gst_elementfactory_new (gchar *name, GtkType type,
*/
GstElement *
gst_elementfactory_create (GstElementFactory *factory,
- gchar *name)
+ const gchar *name)
{
GstElement *element;
GstElementClass *oclass;
@@ -184,7 +184,7 @@ gst_elementfactory_create (GstElementFactory *factory,
* Returns: new #GstElement
*/
GstElement*
-gst_elementfactory_make (gchar *factoryname, gchar *name)
+gst_elementfactory_make (const gchar *factoryname, const gchar *name)
{
GstElementFactory *factory;
GstElement *element;
diff --git a/gst/gstplugin.c b/gst/gstplugin.c
index 5446b319e2..c0d32c034d 100644
--- a/gst/gstplugin.c
+++ b/gst/gstplugin.c
@@ -158,7 +158,7 @@ gst_plugin_load_all(void)
* Returns: whether the library was loaded or not
*/
gboolean
-gst_library_load (gchar *name)
+gst_library_load (const gchar *name)
{
gboolean res;
GList *libraries = _gst_libraries;
@@ -173,7 +173,7 @@ gst_library_load (gchar *name)
res = gst_plugin_load(name);
if (res) {
- _gst_libraries = g_list_prepend(_gst_libraries, name);
+ _gst_libraries = g_list_prepend(_gst_libraries, g_strdup (name));
}
return res;
@@ -205,7 +205,7 @@ gst_plugin_remove (GstPlugin *plugin)
* Returns: whether the plugin was loaded or not
*/
gboolean
-gst_plugin_load (gchar *name)
+gst_plugin_load (const gchar *name)
{
GList *path;
gchar *libspath;
@@ -244,7 +244,7 @@ gst_plugin_load (gchar *name)
* Returns: whether or not the plugin loaded
*/
gboolean
-gst_plugin_load_absolute (gchar *name)
+gst_plugin_load_absolute (const gchar *name)
{
GModule *module;
GstPluginInitFunc initfunc;
@@ -295,7 +295,7 @@ gst_plugin_load_absolute (gchar *name)
* Returns: new plugin
*/
GstPlugin*
-gst_plugin_new (gchar *name)
+gst_plugin_new (const gchar *name)
{
GstPlugin *plugin;
@@ -316,6 +316,40 @@ gst_plugin_new (gchar *name)
return plugin;
}
+/**
+ * gst_plugin_get_name:
+ * @plugin: plugin to get the name of
+ *
+ * Get the short name of the plugin
+ *
+ * Returns: the name of the plugin
+ */
+const gchar*
+gst_plugin_get_name (GstPlugin *plugin)
+{
+ g_return_val_if_fail (plugin != NULL, NULL);
+
+ return plugin->name;
+}
+
+/**
+ * gst_plugin_set_name:
+ * @plugin: plugin to set name of
+ * @name: new name
+ *
+ * Sets the name (should be short) of the plugin.
+ */
+void
+gst_plugin_set_name (GstPlugin *plugin, const gchar *name)
+{
+ g_return_if_fail (plugin != NULL);
+
+ if (plugin->name)
+ g_free (plugin->name);
+
+ plugin->name = g_strdup (name);
+}
+
/**
* gst_plugin_set_longname:
* @plugin: plugin to set long name of
@@ -324,14 +358,65 @@ gst_plugin_new (gchar *name)
* Sets the long name (should be descriptive) of the plugin.
*/
void
-gst_plugin_set_longname (GstPlugin *plugin, gchar *longname)
+gst_plugin_set_longname (GstPlugin *plugin, const gchar *longname)
{
g_return_if_fail(plugin != NULL);
- if (plugin->longname) g_free(plugin->longname);
+ if (plugin->longname)
+ g_free(plugin->longname);
+
plugin->longname = g_strdup(longname);
}
+/**
+ * gst_plugin_get_longname:
+ * @plugin: plugin to get long name of
+ *
+ * Get the long descriptive name of the plugin
+ *
+ * Returns: the long name of the plugin
+ */
+const gchar*
+gst_plugin_get_longname (GstPlugin *plugin)
+{
+ g_return_val_if_fail (plugin != NULL, NULL);
+
+ return plugin->longname;
+}
+
+/**
+ * gst_plugin_get_filename:
+ * @plugin: plugin to get the filename of
+ *
+ * get the filename of the plugin
+ *
+ * Returns: the filename of the plugin
+ */
+const gchar*
+gst_plugin_get_filename (GstPlugin *plugin)
+{
+ g_return_val_if_fail (plugin != NULL, NULL);
+
+ return plugin->filename;
+}
+
+/**
+ * gst_plugin_is_loaded:
+ * @plugin: plugin to query
+ *
+ * queries if the plugin is loaded into memory
+ *
+ * Returns: TRUE is loaded, FALSE otherwise
+ */
+gboolean
+gst_plugin_is_loaded (GstPlugin *plugin)
+{
+ g_return_val_if_fail (plugin != NULL, FALSE);
+
+ return plugin->loaded;
+}
+
+
/**
* gst_plugin_find:
* @name: name of plugin to find
@@ -369,7 +454,7 @@ gst_plugin_find (const gchar *name)
* Returns: @GstElementFactory if found, NULL if not
*/
GstElementFactory*
-gst_plugin_find_elementfactory (gchar *name)
+gst_plugin_find_elementfactory (const gchar *name)
{
GList *plugins, *factories;
GstElementFactory *factory;
@@ -400,7 +485,7 @@ gst_plugin_find_elementfactory (gchar *name)
* Returns: @GstElementFactory if loaded, NULL if not
*/
GstElementFactory*
-gst_plugin_load_elementfactory (gchar *name)
+gst_plugin_load_elementfactory (const gchar *name)
{
GList *plugins, *factories;
GstElementFactory *factory = NULL;
@@ -447,7 +532,7 @@ gst_plugin_load_elementfactory (gchar *name)
* Load a registered typefactory by mime type.
*/
void
-gst_plugin_load_typefactory (gchar *mime)
+gst_plugin_load_typefactory (const gchar *mime)
{
GList *plugins, *factories;
GstTypeFactory *factory;
@@ -649,9 +734,34 @@ gst_plugin_load_thyself (xmlNodePtr parent)
}
+/**
+ * gst_plugin_get_factory_list:
+ * @plugin: the plugin to get the factories from
+ *
+ * get a list of all the factories that this plugin provides
+ *
+ * Returns: a GList of factories
+ */
GList*
gst_plugin_get_factory_list (GstPlugin *plugin)
{
+ g_return_val_if_fail (plugin != NULL, NULL);
+
return plugin->elements;
}
+/**
+ * gst_plugin_get_type_list:
+ * @plugin: the plugin to get the typefactories from
+ *
+ * get a list of all the typefactories that this plugin provides
+ *
+ * Returns: a GList of factories
+ */
+GList*
+gst_plugin_get_type_list (GstPlugin *plugin)
+{
+ g_return_val_if_fail (plugin != NULL, NULL);
+
+ return plugin->types;
+}
diff --git a/gst/gstplugin.h b/gst/gstplugin.h
index ea6b0f6959..13438ce1ae 100644
--- a/gst/gstplugin.h
+++ b/gst/gstplugin.h
@@ -52,25 +52,34 @@ typedef GstPlugin* (*GstPluginInitFunc) (GModule *module);
void _gst_plugin_initialize (void);
-GstPlugin* gst_plugin_new (gchar *name);
-void gst_plugin_set_longname (GstPlugin *plugin, gchar *longname);
+GstPlugin* gst_plugin_new (const gchar *name);
+
+const gchar* gst_plugin_get_name (GstPlugin *plugin);
+void gst_plugin_set_name (GstPlugin *plugin, const gchar *name);
+const gchar* gst_plugin_get_longname (GstPlugin *plugin);
+void gst_plugin_set_longname (GstPlugin *plugin, const gchar *longname);
+
+const gchar* gst_plugin_get_filename (GstPlugin *plugin);
+gboolean gst_plugin_is_loaded (GstPlugin *plugin);
+
+GList* gst_plugin_get_type_list (GstPlugin *plugin);
+GList* gst_plugin_get_factory_list (GstPlugin *plugin);
void gst_plugin_load_all (void);
-gboolean gst_plugin_load (gchar *name);
-gboolean gst_plugin_load_absolute (gchar *name);
-gboolean gst_library_load (gchar *name);
+gboolean gst_plugin_load (const gchar *name);
+gboolean gst_plugin_load_absolute (const gchar *name);
+gboolean gst_library_load (const gchar *name);
void gst_plugin_add_factory (GstPlugin *plugin, GstElementFactory *factory);
void gst_plugin_add_type (GstPlugin *plugin, GstTypeFactory *factory);
-GList* gst_plugin_get_factory_list (GstPlugin *plugin);
GstPlugin* gst_plugin_find (const gchar *name);
GList* gst_plugin_get_list (void);
-GstElementFactory* gst_plugin_find_elementfactory (gchar *name);
+GstElementFactory* gst_plugin_find_elementfactory (const gchar *name);
-GstElementFactory* gst_plugin_load_elementfactory (gchar *name);
-void gst_plugin_load_typefactory (gchar *mime);
+GstElementFactory* gst_plugin_load_elementfactory (const gchar *name);
+void gst_plugin_load_typefactory (const gchar *mime);
xmlNodePtr gst_plugin_save_thyself (xmlNodePtr parent);
void gst_plugin_load_thyself (xmlNodePtr parent);
diff --git a/gst/gsttype.c b/gst/gsttype.c
index df2a9d4833..ad6279fb72 100644
--- a/gst/gsttype.c
+++ b/gst/gsttype.c
@@ -97,7 +97,7 @@ gst_type_register (GstTypeFactory *factory)
}
static
-guint16 gst_type_find_by_mime_func (gchar *mime)
+guint16 gst_type_find_by_mime_func (const gchar *mime)
{
GList *walk;
GstType *type;
@@ -143,7 +143,7 @@ guint16 gst_type_find_by_mime_func (gchar *mime)
* Returns: the type id
*/
guint16
-gst_type_find_by_mime (gchar *mime)
+gst_type_find_by_mime (const gchar *mime)
{
return gst_type_find_by_mime_func (mime);
}
@@ -157,7 +157,7 @@ gst_type_find_by_mime (gchar *mime)
* Returns: the type id
*/
guint16
-gst_type_find_by_ext (gchar *ext)
+gst_type_find_by_ext (const gchar *ext)
{
//FIXME
g_warning ("gsttype: find_by_ext not implemented");
diff --git a/gst/gsttype.h b/gst/gsttype.h
index 571e3c008e..2e2ef0a129 100644
--- a/gst/gsttype.h
+++ b/gst/gsttype.h
@@ -58,8 +58,8 @@ void _gst_type_initialize (void);
guint16 gst_type_register (GstTypeFactory *factory);
/* look up a type by mime or extension */
-guint16 gst_type_find_by_mime (gchar *mime);
-guint16 gst_type_find_by_ext (gchar *ext);
+guint16 gst_type_find_by_mime (const gchar *mime);
+guint16 gst_type_find_by_ext (const gchar *ext);
/* get GstType by id */
GstType* gst_type_find_by_id (guint16 id);
diff --git a/plugins/elements/gstesdsink.c b/plugins/elements/gstesdsink.c
deleted file mode 100644
index 887a8641a0..0000000000
--- a/plugins/elements/gstesdsink.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen
- * 2000 Wim Taymans
- *
- * gstesdsink.c:
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
diff --git a/plugins/elements/gstesdsink.h b/plugins/elements/gstesdsink.h
deleted file mode 100644
index 61f0342e32..0000000000
--- a/plugins/elements/gstesdsink.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen
- * 2000 Wim Taymans
- *
- * gstesdsink.h:
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-#ifndef __GST_ESDSINK_H__
-#define __GST_ESDSINK_H__
-
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define GST_TYPE_ESDSINK \
- (gst_esdsink_get_type())
-#define GST_ESDSINK(obj) \
- (GTK_CHECK_CAST((obj),GST_TYPE_ESDSINK,GstEsdSink))
-#define GST_ESDSINK_CLASS(klass) \
- (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_ESDSINK,GstEsdSinkClass))
-#define GST_IS_ESDSINK(obj) \
- (GTK_CHECK_TYPE((obj),GST_TYPE_ESDSINK))
-#define GST_IS_ESDSINK_CLASS(obj) \
- (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ESDSINK))
-
-typedef struct _GstEsdSink GstEsdSink;
-typedef struct _GstEsdSinkClass GstEsdSinkClass;
-
-struct _GstEsdSink {
- GstFilter filter;
-
- GstPad *sinkpad;
-
- /* soundcard state */
-
- int fd;
- gint format;
- gint channels;
- gint frequency;
-};
-
-struct _GstEsdSinkClass {
- GstFilterClass parent_class;
-
- /* signals */
- void (*handoff) (GstElement *element,GstPad *pad);
-};
-
-GtkType gst_esdsink_get_type(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __GST_ESDSINK_H__ */