&GstUtils;
&GstXML;
- &cothreads;
</chapter>
<chapter id="element-types">
gst_version
gst_main
gst_main_quit
+gst_has_threads
+gst_use_threads
g_log_domain_gstreamer
GST_VERSION_MAJOR
GST_VERSION_MINOR
GstSchedulerFlags
gst_scheduler_destroy
gst_scheduler_setup
+gst_scheduler_get_preferred_stack
gst_scheduler_reset
gst_scheduler_add_element
gst_scheduler_remove_element
<SECTION>
<FILE>gstdata</FILE>
<TITLE>GstData</TITLE>
+GST_DATA
+GST_DATA_TYPE
+GST_DATA_FLAGS
+GST_DATA_FLAG_SHIFT
+GST_DATA_FLAG_IS_SET
+GST_DATA_FLAG_SET
+GST_DATA_FLAG_UNSET
GstData
+GstDataFreeFunction
+GstDataCopyFunction
+GstDataFlags
+GST_DATA_IS_READONLY
+GST_DATA_REFCOUNT
+GST_DATA_REFCOUNT_VALUE
+GST_DATA_REFCOUNT_READ
+GST_DATA_COPY_FUNC
+GST_DATA_FREE_FUNC
+gst_data_init
+gst_data_dispose
+gst_data_copy_into
+gst_data_copy
+gst_data_copy_on_write
+gst_data_free
+gst_data_ref
+gst_data_ref_by_count
+gst_data_unref
<SUBSECTION Standard>
GST_DATA
GST_DATA_TYPE
<SECTION>
<FILE>gstbuffer</FILE>
<TITLE>GstBuffer</TITLE>
-GST_IS_BUFFER
GST_BUFFER
+GST_IS_BUFFER
+GST_BUFFER_REFCOUNT
+GST_BUFFER_REFCOUNT_VALUE
+GST_BUFFER_COPY_FUNC
+GST_BUFFER_FREE_FUNC
+
GST_BUFFER_FLAGS
GST_BUFFER_FLAG_IS_SET
GST_BUFFER_FLAG_SET
GST_BUFFER_FLAG_UNSET
+
GST_BUFFER_DATA
GST_BUFFER_SIZE
-GST_BUFFER_OFFSET
GST_BUFFER_MAXSIZE
GST_BUFFER_TIMESTAMP
+GST_BUFFER_OFFSET
GST_BUFFER_BUFFERPOOL
GST_BUFFER_POOL_PRIVATE
-GST_BUFFER_LOCK
-GST_BUFFER_TRYLOCK
-GST_BUFFER_UNLOCK
-GST_BUFFER_PARENT
-GST_BUFFER_MAXAGE
-GST_BUFFER_COPY_FUNC
-GST_BUFFER_FREE_FUNC
-GstBufferCopyFunc
-GstBufferFreeFunc
GstBufferFlag
GstBuffer
gst_buffer_new
+gst_buffer_new_and_alloc
gst_buffer_new_from_pool
-gst_buffer_copy
-gst_buffer_create_sub
-gst_buffer_append
+gst_buffer_default_free
+gst_buffer_default_copy
gst_buffer_ref
gst_buffer_ref_by_count
gst_buffer_unref
-gst_buffer_destroy
-gst_buffer_is_span_fast
+gst_buffer_copy
+gst_buffer_copy_on_write
+gst_buffer_free
+gst_buffer_create_sub
gst_buffer_merge
+gst_buffer_is_span_fast
gst_buffer_span
gst_buffer_print_stats
<SUBSECTION Standard>
<SECTION>
<FILE>gstbufferpool</FILE>
<TITLE>GstBufferPool</TITLE>
+GST_BUFFER_POOL
+GST_IS_BUFFER_POOL
GstBufferPool
GstBufferPoolBufferNewFunction
-GstBufferPoolDestroyHook
-GST_BUFFER_POOL_UNLOCK
-GST_BUFFER_POOL_LOCK
+GstBufferPoolBufferCopyFunction
+GstBufferPoolBufferFreeFunction
gst_buffer_pool_new
+gst_buffer_pool_is_active
+gst_buffer_pool_set_active
gst_buffer_pool_ref
gst_buffer_pool_ref_by_count
gst_buffer_pool_unref
-gst_buffer_pool_destroy
-gst_buffer_pool_get_default
+gst_buffer_pool_copy
+gst_buffer_pool_copy_on_write
+gst_buffer_pool_free
gst_buffer_pool_set_user_data
gst_buffer_pool_get_user_data
-gst_buffer_pool_set_buffer_copy_function
-gst_buffer_pool_set_buffer_free_function
-gst_buffer_pool_set_buffer_new_function
-gst_buffer_pool_set_destroy_hook
+gst_buffer_pool_get_default
<SUBSECTION Standard>
-GST_BUFFER_POOL
</SECTION>
<SECTION>
GST_EVENT_DISCONT_NEW_MEDIA
GST_EVENT_DISCONT_OFFSET
GST_EVENT_DISCONT_OFFSET_LEN
+GST_EVENT_RATE_VALUE
+GST_EVENT_SEEK_ENDOFFSET
+GST_EVENT_SIZE_FORMAT
+GST_EVENT_SIZE_VALUE
GstEvent
gst_event_new
gst_event_copy
-gst_event_free
+gst_event_ref
+gst_event_ref_by_count
+gst_event_unref
gst_event_new_seek
+gst_event_new_segment_seek
+gst_event_new_size
gst_event_new_discontinuous
gst_event_discont_get_value
gst_event_new_filler
gst_event_new_flush
+gst_event_print_stats
<SUBSECTION Standard>
GST_EVENT
GST_IS_EVENT
GstRegistryReturn
GstRegistryFlags
<TITLE>GstRegistry</TITLE>
+GstRegistry
gst_registry_load
gst_registry_is_loaded
gst_registry_save
<TITLE>GstSystemClock</TITLE>
gst_system_clock_obtain
<SUBSECTION Standard>
+GstSystemClock
GST_SYSTEM_CLOCK
GST_IS_SYSTEM_CLOCK
GST_TYPE_SYSTEM_CLOCK
GstPadConnectFunction
GstPadConnectReturn
GstPadConvertFunction
-GstPadDispatcherFunc
+GstPadDispatcherFunction
GstPadIntConnFunction
GstPadQueryType
gst_type_factory_new
gst_type_factory_find
<SUBSECTION Standard>
+GstTypeFind
+GstTypeFindClass
GST_TYPE_FACTORY
GST_IS_TYPE_FACTORY
GST_TYPE_TYPE_FACTORY
GStreamer is a framework for constructing graphs of various filters
(termed elements here) that will handle streaming media. Any discreet
(packetizable) media type is supported, with provisions for automatically
-determining source type. Metadata can be passed with all data to provide
-formatting/framing information. Plugins are heavily used to provide for
+determining source type. Formatting/framing information is provided with
+a powerful negotiation framework. Plugins are heavily used to provide for
all elements, allowing one to construct plugins outside of the GST
library, even released binary-only if license require (please don't).
</para>
GStreamer borrows heavily from both the <ulink
url="http://www.cse.ogi.edu/sysl/">OGI media pipeline</ulink> and
Microsoft's DirectShow, hopefully taking the best of both and leaving the
-cruft behind. Its interface is still very fluid (I've redesigned the
-metadata handling twice already), and thus can be changed to increase the
-sanity/noise ratio.
+cruft behind. Its interface is still very fluid and thus can be changed
+to increase the sanity/noise ratio.
</para>
<para>
}
</programlisting>
</para>
+<para>
+It's allowed to pass two NULL pointers to gst_init() in case you don't want to pass the command
+line args to GStreamer.
+</para>
<para>
You can also use a popt table to initialize your own parameters as shown in the next code
to find the version at compile time.
</para>
<para>
-gst_main() and gst_main_quit() enter and exit the main loop.
+gst_main() and gst_main_quit() enter and exit the main loop.
</para>
<!-- ##### SECTION See_Also ##### -->
+<!-- ##### FUNCTION gst_has_threads ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gst_use_threads ##### -->
+<para>
+
+</para>
+
+@use_threads:
+
+
<!-- ##### VARIABLE g_log_domain_gstreamer ##### -->
<para>
Flags for a bin.
</para>
-@GST_BIN_FLAG_MANAGER:
-@GST_BIN_SELF_SCHEDULABLE:
-@GST_BIN_FLAG_PREFER_COTHREADS:
-@GST_BIN_FLAG_FIXED_CLOCK:
+@GST_BIN_FLAG_MANAGER: This bin has a scheduler and can be used as a toplevel bin.
+@GST_BIN_SELF_SCHEDULABLE: This bin iterates itself, so no calls to gst_bin_iterate() should be made.
+@GST_BIN_FLAG_PREFER_COTHREADS: This bin preferes to have its elements scheduled with cothreads
+@GST_BIN_FLAG_FIXED_CLOCK: This bin uses a fixed clock, possibly the one set with gst_bin_use_clock().
@GST_BIN_FLAG_LAST:
<!-- ##### STRUCT GstBin ##### -->
GstBuffer
<!-- ##### SECTION Short_Description ##### -->
-Data-passing buffer type, supporting sub-buffers and metadata
+Data-passing buffer type, supporting sub-buffers.
<!-- ##### SECTION Long_Description ##### -->
<para>
provides all the state necessary to define a region of memory as part of a
stream. Sub-buffers are also supported, allowing a smaller region of a
buffer to become its own buffer, with mechanisms in place to ensure that
-neither memory space goes away. Metadata is supported as a list of
-pointers to arbitrary metadata.
+neither memory space goes away.
</para>
<para>
Buffers are usually created with gst_buffer_new(). After a buffer has been
</programlisting>
</para>
<para>
-GstBuffers can also be created from a GstBufferPool with
+Alternatively, use gst_buffer_new_and_alloc() to create a buffer with preallocated
+data of a given size.
+</para>
+<para>
+GstBuffers can also be created from a #GstBufferPool with
gst_buffer_new_from_pool(). The bufferpool can be obtained from a
peer element with gst_pad_get_bufferpool().
</para>
a certain flag is set.
</para>
<para>
+Buffers can be efficiently merged into a larger buffer with gst_buffer_merge() and
+gst_buffer_span() if the gst_buffer_is_span_fast() function returns TRUE.
+</para>
+<para>
Buffers usually are freed by unreffing them with gst_buffer_unref().
-gst_buffer_destroy() can also be used to effectively destroy the buffer
+gst_buffer_free() can also be used to effectively free the buffer
regardless of the refcount (dangerous).
</para>
#GstBufferPool, #GstPad, #GstData
</para>
+<!-- ##### MACRO GST_BUFFER ##### -->
+<para>
+Casts an object to a GstBuffer.
+</para>
+
+@buf: object to cast
+
+
<!-- ##### MACRO GST_IS_BUFFER ##### -->
<para>
-Checks if the object is a buffer.
+Checks if the pointer is a GstBuffer
</para>
-@buf: object to check
+@buf: The buffer to query
-<!-- ##### MACRO GST_BUFFER ##### -->
+<!-- ##### MACRO GST_BUFFER_REFCOUNT ##### -->
<para>
-Casts an object to a GstBuffer.
+Get a handle to the refcount structure of the buffer
</para>
-@buf: object to cast
+@buf: The buffer to query
+
+
+<!-- ##### MACRO GST_BUFFER_REFCOUNT_VALUE ##### -->
+<para>
+Get the current refcount value of the buffer
+</para>
+
+@buf: The buffer to query
+
+
+<!-- ##### MACRO GST_BUFFER_COPY_FUNC ##### -->
+<para>
+Calls the buffer-specific copy function on the given buffer.
+</para>
+
+@buf: a #GstBuffer to copy
+
+
+<!-- ##### MACRO GST_BUFFER_FREE_FUNC ##### -->
+<para>
+Calls the buffer-specific free function on the given buffer.
+</para>
+
+@buf: a #GstBuffer to free
<!-- ##### MACRO GST_BUFFER_FLAGS ##### -->
@buf: a #GstBuffer to get data size of
-<!-- ##### MACRO GST_BUFFER_OFFSET ##### -->
-<para>
-Gets the offset in the source file of this buffer.
-</para>
-
-@buf: a #GstBuffer to get offset of
-
-
<!-- ##### MACRO GST_BUFFER_MAXSIZE ##### -->
<para>
Gets the maximum size of this buffer.
@buf: a #GstBuffer to get timestamp of
+<!-- ##### MACRO GST_BUFFER_OFFSET ##### -->
+<para>
+Gets the offset in the source file of this buffer.
+</para>
+
+@buf: a #GstBuffer to get offset of
+
+
<!-- ##### MACRO GST_BUFFER_BUFFERPOOL ##### -->
<para>
Gets the bufferpool for this buffer.
@buf: a #GstBuffer to get bufferpool's private data of
-<!-- ##### MACRO GST_BUFFER_COPY_FUNC ##### -->
-<para>
-Calls the buffer-specific copy function on the given buffer.
-</para>
-
-@buf: a #GstBuffer to copy
+<<<<<<< gstbuffer.sgml
-<!-- ##### MACRO GST_BUFFER_FREE_FUNC ##### -->
+<!-- ##### ENUM GstBufferFlag ##### -->
<para>
-Calls the buffer-specific free function on the given buffer.
+This enumeration type describes the flags that can be used for a buffer.
</para>
-@buf: a #GstBuffer to free
+@GST_BUFFER_READONLY: buffer is read-only
+@GST_BUFFER_SUBBUFFER: This buffer is a subbuffer, the parent buffer can be found with the
+ GST_BUFFER_POOL_PRIVATE() macro.
+@GST_BUFFER_ORIGINAL: buffer is not a copy of another buffer
+@GST_BUFFER_DONTFREE: do not try to free the data when this buffer is unreferenced
+@GST_BUFFER_DISCONTINOUS: This buffer is the first one after a discontinuity in the stream
+@GST_BUFFER_KEY_UNIT: This buffer holds a key unit, a unit that can be decoded independently
+ of other buffers
+@GST_BUFFER_PREROLL: This buffer should be decoded but not rendered, it is mainly used
+ to resynchronise the stream
+@GST_BUFFER_FLAG_LAST: Additional flags can be added starting from this flag.
+=======
<!-- ##### STRUCT GstBuffer ##### -->
<para>
-
+The basic structure of a buffer
</para>
@data_type:
@Returns:
+<!-- ##### FUNCTION gst_buffer_new_and_alloc ##### -->
+<para>
+
+</para>
+
+@size:
+@Returns:
+
+
<!-- ##### FUNCTION gst_buffer_new_from_pool ##### -->
<para>
@offset:
@size:
@Returns:
-<!-- # Unused Parameters # -->
-@location:
-<!-- ##### MACRO gst_buffer_copy ##### -->
+<!-- ##### FUNCTION gst_buffer_default_free ##### -->
<para>
</para>
@buffer:
-@Returns:
-<!-- ##### FUNCTION gst_buffer_create_sub ##### -->
+<!-- ##### FUNCTION gst_buffer_default_copy ##### -->
<para>
</para>
-@parent:
-@offset:
-@size:
+@buffer:
@Returns:
<!-- ##### MACRO gst_buffer_ref ##### -->
<para>
-
+Increase the refcount of the given buffer
</para>
-@buf:
-<!-- # Unused Parameters # -->
-@buffer:
+@buf: The buffer to refcount
<!-- ##### MACRO gst_buffer_ref_by_count ##### -->
<para>
-
+Increase the refcount of the buffer with the given value.
</para>
-@buf:
-@c:
-<!-- # Unused Parameters # -->
-@buffer:
-@count:
+@buf: The buffer to refcount
+@c: The value to add to the refcount.
<!-- ##### MACRO gst_buffer_unref ##### -->
<para>
+Decrease the refcount of the buffer. If the refcount reaches 0, the buffer
+will be freed.
+</para>
+
+@buf: The buffer to unref
+
+
+<!-- ##### MACRO gst_buffer_copy ##### -->
+<para>
+Copy the given buffer using the copy function of the parent GstData structure.
+</para>
+
+@buffer: The buffer to copy
+@Returns: A new copy of the buffer
+
+
+<!-- ##### MACRO gst_buffer_copy_on_write ##### -->
+<para>
+Copy the buffer if the refcount > 1 so that the newly created buffer can be safely
+written to. If the refcount is 1, this function just returns the original buffer.
+</para>
+
+@buffer: The buffer to copy.
+
+<!-- ##### MACRO gst_buffer_free ##### -->
+<para>
+Free the given buffer. It is dangerous to use this function, use gst_buffer_unref()
+instead.
</para>
-@buf:
-<!-- # Unused Parameters # -->
-@buffer:
+@buffer: The buffer to free.
-<!-- ##### FUNCTION gst_buffer_is_span_fast ##### -->
+<!-- ##### FUNCTION gst_buffer_create_sub ##### -->
+<para>
+
+</para>
+
+@parent:
+@offset:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION gst_buffer_merge ##### -->
<para>
</para>
@Returns:
-<!-- ##### FUNCTION gst_buffer_merge ##### -->
+<!-- ##### FUNCTION gst_buffer_is_span_fast ##### -->
<para>
</para>
<!-- ##### SECTION Long_Description ##### -->
<para>
-A bufferpool is used to create buffers in an efficient way. En element
-can maintain a bufferpool with a fixed number of buffers. This will reduce
-the g_malloc and g_free overhead.
+A bufferpool is used to create buffers in an efficient way. An element
+can, for example, maintain a bufferpool with a fixed number of buffers.
+This will reduce the g_malloc and g_free overhead.
</para>
<para>
A bufferpool can also be used to implement direct access. A bufferpool can be
the number of memcpy operations.
</para>
<para>
-A bufferpool is created with gst_buffer_pool_new(). You'll have to set the
-buffer new and free function afterwards with gst_buffer_pool_set_buffer_new_function() and
-gst_buffer_pool_set_buffer_free_function() so that all buffers created
-from this pool will be allocated/freed with these functions.
-</para>
-<para>
-Optionally the default buffer copy function of the buffers allocated from this pool
-can be overridden with gst_buffer_pool_set_buffer_copy_function().
+A bufferpool is created with gst_buffer_pool_new(). You'll have to provide a
+free and copy function to handle the refcounting of the bufferpool as well as
+functions to create, free and copy buffers created from this pool. All buffer
+functions will receive the user_data you provide in the constructor.
+When no free and copy function is provided for the pool, a default implementation
+will be used.
</para>
<para>
To create a buffer from the bufferpool use gst_buffer_new_from_pool().
</para>
<para>
When the buffer is unreffed and has reached a refcount of 0, the bufferpools free
-function is called with the buffer as an argument.
+function is called with the pool, the buffer and the user_data as arguments.
</para>
<para>
A bufferpool can store private data in the buffer it creates with the GST_BUFFER_POOL_PRIVATE()
macro to get its bufferpool.
</para>
<para>
-Destroy the bufferpool with gst_buffer_pool_destroy(), optional cleanup of the bufferpool can
-be triggered in the GstBufferPoolDestroyHook which you can install with
-gst_buffer_pool_set_destroy_hook().
-</para>
-<para>
-The owner of the bufferpool can add user data to the pool with
-gst_buffer_pool_set_user_data() and gst_buffer_pool_get_user_data().
+All plugins should unref the bufferpool if it is no longer required. When the bufferpool
+reaches a refcount of 0, the free function will be called.
</para>
<para>
If your plugin is going to need a lot of equally sized memory areas you can use
<para>
A bufferpool can be requested from a pad with the gst_pad_get_bufferpool() function. This function
is typically used when a plugin wants to write into a memory area provided by another plugin.
+Use gst_buffer_pool_unref() is you no longer require the bufferpool.
</para>
<!-- ##### SECTION See_Also ##### -->
#GstBuffer, #GstPad
</para>
+<!-- ##### MACRO GST_BUFFER_POOL ##### -->
+<para>
+Cast a pointer to a GstBufferPool
+</para>
+
+@pool: The pointer to cast
+
+
+<!-- ##### MACRO GST_IS_BUFFER_POOL ##### -->
+<para>
+Check if the given pointer is a bufferpool
+</para>
+
+@buf: The pointer to check
+
+
<!-- ##### STRUCT GstBufferPool ##### -->
<para>
</para>
@pool: The pool allocating the buffer
-@offset:
+@offset: An offset for the requested buffer, this can be a TIMESTAMP for example
+ so that the bufferpool owner can implement double buffering or return
+ a suitable position in a DMA buffer.
@size: The size of the allocated buffer
@user_data: user data as set on the bufferpool
@Returns: A new buffer with the given parameters.
-<!-- # Unused Parameters # -->
-@location: the location (offset) of the buffer to allocate
+
+
+<!-- ##### USER_FUNCTION GstBufferPoolBufferCopyFunction ##### -->
+<para>
+The function that will be called when a buffer from the given pool is copied.
+</para>
+
+@pool: The pool that owns the buffer
+@buffer: The buffer to copy
+@user_data: any user data associated with the pool
+@Returns: A new buffer that is a copy of the original
+
+
+<!-- ##### USER_FUNCTION GstBufferPoolBufferFreeFunction ##### -->
+<para>
+The function that will be called when a buffer is to be freed into the
+pool.
+</para>
+
+@pool: The pool that owns the buffer
+@buffer: The buffer to free
+@user_data: Any user data associated with the pool
<!-- ##### FUNCTION gst_buffer_pool_new ##### -->
@free:
@copy:
-@buffer_create:
+@buffer_new:
@buffer_copy:
@buffer_free:
@user_data:
@Returns:
-<!-- ##### MACRO gst_buffer_pool_ref ##### -->
+<!-- ##### FUNCTION gst_buffer_pool_is_active ##### -->
<para>
</para>
-@buf:
-<!-- # Unused Parameters # -->
@pool:
+@Returns:
-<!-- ##### MACRO gst_buffer_pool_ref_by_count ##### -->
+<!-- ##### FUNCTION gst_buffer_pool_set_active ##### -->
<para>
</para>
-@buf:
-@c:
-<!-- # Unused Parameters # -->
@pool:
-@count:
+@active:
+
+
+<!-- ##### MACRO gst_buffer_pool_ref ##### -->
+<para>
+Increase the refcount of the given pool
+</para>
+
+@pool: The pool to refcount
+
+
+<!-- ##### MACRO gst_buffer_pool_ref_by_count ##### -->
+<para>
+Increase the refcount of the given pool by c
+</para>
+
+@pool: The pool to refcount
+@c: The value to add to the refcount
<!-- ##### MACRO gst_buffer_pool_unref ##### -->
<para>
+Decrease the refcount of the given pool. If the refcount reaches
+0, the free function of the pool will be called.
+</para>
+
+@pool: The pool to unref.
+
+<!-- ##### MACRO gst_buffer_pool_copy ##### -->
+<para>
+Copy the pool
</para>
-@buf:
-<!-- # Unused Parameters # -->
-@pool:
-@buffer:
+@pool: The pool to copy.
-<!-- ##### FUNCTION gst_buffer_pool_get_default ##### -->
+<!-- ##### MACRO gst_buffer_pool_copy_on_write ##### -->
<para>
+Copy the pool if the refcount > 1
+</para>
+
+@pool: A copy of the pool or the pool itself if the refcount is 1
+
+<!-- ##### MACRO gst_buffer_pool_free ##### -->
+<para>
+Free the given pool. This is dangerous, use gst_buffer_pool_unref() instead.
</para>
-@size:
-@numbuffers:
-@Returns:
-<!-- # Unused Parameters # -->
-@buffer_size:
-@pool_size:
-@oldpool:
+@pool: The pool to free
<!-- ##### FUNCTION gst_buffer_pool_set_user_data ##### -->
<para>
-
+Set the specified user data to the bufferpool.
</para>
-@pool:
-@user_data:
+@pool: The pool to set the user_data of
+@user_data: The user data to set on the pool
<!-- ##### FUNCTION gst_buffer_pool_get_user_data ##### -->
<para>
+Get the user_data of the pool
+</para>
+
+@pool: The pool to get the user data of
+@Returns: The user data of the pool
+
+
+<!-- ##### FUNCTION gst_buffer_pool_get_default ##### -->
+<para>
</para>
-@pool:
+@size:
+@numbuffers:
@Returns:
-<!-- # Unused Parameters # -->
-@user_data:
GstData
<!-- ##### SECTION Short_Description ##### -->
-Common structure for GstBuffer and GstEvent
+Common structure for GstBuffer, GstBufferPool, and GstEvent
<!-- ##### SECTION Long_Description ##### -->
<para>
-This structure provides a common base for #GstBuffer and #GstEvent. It is the
-main data type that is passed along in a pipeline.
+This abstract structure provides a common base for #GstBuffer, #GstBufferPool
+and #GstEvent. It is the main data type that is passed along in a pipeline.
+GstData provides refcounting, freeing and copying for its child classes.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
-#GstBuffer, #GstEvent
+#GstBuffer, #GstBufferPool, #GstEvent
</para>
+<!-- ##### MACRO GST_DATA ##### -->
+<para>
+Cast a pointer to a GstData
+</para>
+
+@data: The pointer to cast
+
+
+<!-- ##### MACRO GST_DATA_TYPE ##### -->
+<para>
+Get the type of the GstData
+</para>
+
+@data: The data to get the type of
+
+
+<!-- ##### MACRO GST_DATA_FLAGS ##### -->
+<para>
+Get the flags of this GstData
+</para>
+
+@data: The data to get the flags of
+
+
+<!-- ##### MACRO GST_DATA_FLAG_SHIFT ##### -->
+<para>
+Shift a given flag so that it can be used in an or operation
+</para>
+
+@flag: The flag to shift
+
+
+<!-- ##### MACRO GST_DATA_FLAG_IS_SET ##### -->
+<para>
+Check if a given flag is set on the data
+</para>
+
+@data: The data to check
+@flag: The flag to check for
+
+
+<!-- ##### MACRO GST_DATA_FLAG_SET ##### -->
+<para>
+Set the flag on the data
+</para>
+
+@data: The data to set the flag on
+@flag: The flag to set
+
+
+<!-- ##### MACRO GST_DATA_FLAG_UNSET ##### -->
+<para>
+Unset the given flag
+</para>
+
+@data: The data to unset the flag of
+@flag: The flag to unset
+
+
<!-- ##### STRUCT GstData ##### -->
<para>
The base structure
</para>
@type: The type of this data.
-@refcount:
+@refcount: A refcount
+@flags: The flags of this GstData
+@free: A pointer to a custom free function
+@copy: A pointer to a custom copy function
+
+<!-- ##### USER_FUNCTION GstDataFreeFunction ##### -->
+<para>
+The signature of the free function. Subclasses should provide a free function
+with this signature and pass it in the gst_data_init() function.
+</para>
+
+@data: The GstData to free
+
+
+<!-- ##### USER_FUNCTION GstDataCopyFunction ##### -->
+<para>
+The signature of the copy function. Subclasses should provide a copy function
+with this signature and pass it in the gst_data_init() function.
+</para>
+
+@data: The GstData to copy
+@Returns: A new GstData that is a copy of data
+
+
+<!-- ##### ENUM GstDataFlags ##### -->
+<para>
+Various flags that can be set on a GstData
+</para>
+
+@GST_DATA_READONLY: The data is readonly
+@GST_DATA_FLAG_LAST: Subclasses can add additional flags starting from this offset
+
+<!-- ##### MACRO GST_DATA_IS_READONLY ##### -->
+<para>
+Query if the GstData is READONLY
+</para>
+
+@data: The data to query
+
+
+<!-- ##### MACRO GST_DATA_REFCOUNT ##### -->
+<para>
+Get access to the refcount field of the GstData
+</para>
+
+@data: The GstData to get the refcount field of
+
+
+<!-- ##### MACRO GST_DATA_REFCOUNT_VALUE ##### -->
+<para>
+Get the current refcount value
+</para>
+
+@data: The GstData to query
+
+
+<!-- ##### MACRO GST_DATA_REFCOUNT_READ ##### -->
+<para>
+Read the current refcount value into the specified value
+</para>
+
+@data: The GstData to get the refcount value of
+@value: A pointer to a gint to hold the refcount value
+
+
+<!-- ##### MACRO GST_DATA_COPY_FUNC ##### -->
+<para>
+Get access to the copy function of the data
+</para>
+
+@data: The data to query
+
+
+<!-- ##### MACRO GST_DATA_FREE_FUNC ##### -->
+<para>
+Get access to the free function of the data
+</para>
+
+@data: The data to query
+
+
+<!-- ##### FUNCTION gst_data_init ##### -->
+<para>
+
+</para>
+
+@data:
+@type:
@flags:
@free:
@copy:
+
+<!-- ##### FUNCTION gst_data_dispose ##### -->
+<para>
+
+</para>
+
+@data:
+
+
+<!-- ##### FUNCTION gst_data_copy_into ##### -->
+<para>
+
+</para>
+
+@data:
+@target:
+
+
+<!-- ##### FUNCTION gst_data_copy ##### -->
+<para>
+
+</para>
+
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION gst_data_copy_on_write ##### -->
+<para>
+
+</para>
+
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION gst_data_free ##### -->
+<para>
+
+</para>
+
+@data:
+
+
+<!-- ##### FUNCTION gst_data_ref ##### -->
+<para>
+
+</para>
+
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION gst_data_ref_by_count ##### -->
+<para>
+
+</para>
+
+@data:
+@count:
+@Returns:
+
+
+<!-- ##### FUNCTION gst_data_unref ##### -->
+<para>
+
+</para>
+
+@data:
+
+
of an element with gst_element_get_state() and gst_element_set_state().
You can wait for an element to change it's state with gst_element_wait_state_change().
To get a string representation of a #GstElementState, use
-gst_element_statename(), which is a really bad name for what it does
-and should probably be renamed
-to gst_element_state_get_name if we can be bothered to do that.
+gst_element_state_get_name().
</para>
<para>
<!-- ##### USER_FUNCTION GstElementPostRunFunction ##### -->
<para>
-
+The signature of the function to execute before this element
+is scheduled.
</para>
-@element:
+@element: The element
<!-- ##### USER_FUNCTION GstElementPreRunFunction ##### -->
<para>
-
+The signature of the function to execute after this element
+is scheduled.
</para>
-@element:
+@element: The element
<!-- ##### FUNCTION gst_element_disable_threadsafe_properties ##### -->
shortcut.
</para>
<para>
-The following code example shows you how to create a GstDiskSrc element.
+The following code example shows you how to create a GstFileSrc element.
</para>
<para>
<!-- ##### MACRO GST_ELEMENT_RANK_MARGINAL ##### -->
<para>
-
+The element is only marginally usefull for autoplugging
</para>
<!-- ##### MACRO GST_ELEMENT_RANK_NONE ##### -->
<para>
-
+The plugin may not be used in autoplugging
</para>
<!-- ##### MACRO GST_ELEMENT_RANK_PRIMARY ##### -->
<para>
-
+The plugin is well suited for autoplugging
</para>
<!-- ##### MACRO GST_ELEMENT_RANK_SECONDARY ##### -->
<para>
-
+The plugin is suited for autoplugging but only as a second
+candidate.
</para>
@GST_EVENT_NEW_MEDIA: a new media stream is started
@GST_EVENT_QOS: a quality of service event
@GST_EVENT_SEEK: a seek event.
+@GST_EVENT_SEEK_SEGMENT: a segment seek with start and stop position
+@GST_EVENT_SEGMENT_DONE: the event that will be emited when the segment seek has ended
+@GST_EVENT_SIZE: a size suggestion for a peer element
+@GST_EVENT_RATE: adjust the output rate of an element
@GST_EVENT_FILLER: a dummy element that should be ignored by plugins
-@GST_EVENT_SIZE:
<!-- ##### MACRO GST_EVENT_TYPE ##### -->
<para>
@GST_SEEK_FLAG_FLUSH: Flush any pending data while seeking
@GST_SEEK_FLAG_ACCURATE: Seek as accuratly as possible
@GST_SEEK_FLAG_KEY_UNIT: Seek to a nearby key unit
+@GST_SEEK_FLAG_SEGMENT_LOOP: Loop between start and stop in a segmented seek
<!-- ##### ENUM GstSeekAccuracy ##### -->
<para>
if the seek was accurate or fuzzy.
</para>
-@GST_SEEK_CERTAIN:
-@GST_SEEK_FUZZY:
+@GST_SEEK_CERTAIN: The seek was exact
+@GST_SEEK_FUZZY: The seek was fuzzy, exact position can not be guaranteed
<!-- ##### MACRO GST_EVENT_SEEK_TYPE ##### -->
<para>
<!-- ##### MACRO GST_SEEK_FLAGS_MASK ##### -->
<para>
-
+Mask for the flags in the GstSeekType
</para>
<!-- ##### MACRO GST_SEEK_FLAGS_SHIFT ##### -->
<para>
-
+Shift for the flags in the GstSeekType
</para>
<!-- ##### MACRO GST_SEEK_FORMAT_MASK ##### -->
<para>
-
+Mask for the format in the GstSeekType
</para>
<!-- ##### MACRO GST_SEEK_FORMAT_SHIFT ##### -->
<para>
-
+Shift for the format in the GstSeekType
</para>
<!-- ##### MACRO GST_SEEK_METHOD_MASK ##### -->
<para>
-
+Mask for the method in the GstSeekType
</para>
<!-- ##### MACRO GST_SEEK_METHOD_SHIFT ##### -->
<para>
-
+Shift for the method in the GstSeekType
</para>
@event: The event to query.
+<!-- ##### MACRO GST_EVENT_RATE_VALUE ##### -->
+<para>
+Get access to the rate vale field
+</para>
+
+@event: The event to query
+
+
+<!-- ##### MACRO GST_EVENT_SEEK_ENDOFFSET ##### -->
+<para>
+The event stop position for a segment seek
+</para>
+
+@event: The event to query
+
+
+<!-- ##### MACRO GST_EVENT_SIZE_FORMAT ##### -->
+<para>
+The format of the size event.
+</para>
+
+@event: The event to query
+
+
+<!-- ##### MACRO GST_EVENT_SIZE_VALUE ##### -->
+<para>
+The value of the size event
+</para>
+
+@event: The event to query
+
+
<!-- ##### STRUCT GstEvent ##### -->
<para>
The event data structure.
<!-- ##### MACRO gst_event_copy ##### -->
<para>
+Copy the event using the event specific copy function
+</para>
+@ev: The event to copy
+@Returns: A new event that is a copy of the given input event
+
+
+<!-- ##### MACRO gst_event_ref ##### -->
+<para>
+Increase the refcount of this event
</para>
-@ev:
-@Returns:
-<!-- # Unused Parameters # -->
-@event:
+@ev: The event to refcount
+
+
+<!-- ##### MACRO gst_event_ref_by_count ##### -->
+<para>
+Increase the refcount of the event with the given value
+</para>
+
+@ev: The event to refcount
+@c: The value to add to the refcount
+
+
+<!-- ##### MACRO gst_event_unref ##### -->
+<para>
+Decrease the refcount of an event, freeing it if the refcount reaches 0
+</para>
+
+@ev: The event to unref
<!-- ##### FUNCTION gst_event_new_seek ##### -->
@Returns:
+<!-- ##### FUNCTION gst_event_new_segment_seek ##### -->
+<para>
+
+</para>
+
+@type:
+@start:
+@stop:
+@Returns:
+
+
+<!-- ##### FUNCTION gst_event_new_size ##### -->
+<para>
+
+</para>
+
+@format:
+@value:
+@Returns:
+
+
<!-- ##### FUNCTION gst_event_new_discontinuous ##### -->
<para>
+<!-- ##### FUNCTION gst_event_print_stats ##### -->
+<para>
+
+</para>
+
+
+
<para>
GstObject provides a root for the object hierarchy tree filed in by the
GST library. It is currently a thin wrapper on top of
-<classname>GObject</classname> but it can be compiled against GTK+ with
-a shim provided by the GStreamer library. It is an abstract class that is not
+<classname>GObject</classname>. It is an abstract class that is not
very usable on its own.
</para>
</para>
-@GST_DESTROYED:
-@GST_FLOATING:
-@GST_OBJECT_FLAG_LAST:
+@GST_DESTROYED: The object is flagged for destruction
+@GST_FLOATING: The object is created but has no parent yet to manage it
+@GST_OBJECT_FLAG_LAST: subclasses can add additional flags starting from this flag
<!-- ##### STRUCT GstObject ##### -->
<para>
<!-- ##### ARG GstObject:name ##### -->
<para>
-
+The name of the object
</para>
@Returns: TRUE if the conversion could be performed.
+<!-- ##### USER_FUNCTION GstPadDispatcherFunction ##### -->
+<para>
+The dispatcher function is called for all internally connected pads, see
+gst_pad_dispatcher().
+</para>
+
+@pad: The pad that is dispatched
+@data: User data
+@Returns: TRUE if the dispatching procedure has to be stopped.
+
+
<!-- ##### USER_FUNCTION GstPadIntConnFunction ##### -->
<para>
The signature of the internal pad connection function
@GST_PAD_QUERY_TOTAL: Query the total stream time
@GST_PAD_QUERY_POSITION: Query the current stream position
@GST_PAD_QUERY_LATENCY: Query the latency on the pad
-@GST_PAD_QUERY_JITTER:
+@GST_PAD_QUERY_JITTER: Query the average jitter beteen optimal processing and current
+ processing.
+@GST_PAD_QUERY_SEGMENT_END: Query the end position of the currently executing segment
<!-- ##### USER_FUNCTION GstPadQueryFunction ##### -->
<para>
<!-- ##### MACRO GST_PARSE_ERROR ##### -->
<para>
-
+The error querk
</para>
<!-- ##### FUNCTION gst_parse_error_quark ##### -->
<para>
-
+Get the error quark passed in the GError messages.
</para>
-@Returns:
+@Returns: The parse error quark
<!-- ##### FUNCTION gst_parse_launch ##### -->
<!-- ##### MACRO GST_PLUGIN_ERROR ##### -->
<para>
-
+The error quark
</para>
<!-- ##### FUNCTION gst_plugin_error_quark ##### -->
<para>
-
+Get the error quark
</para>
-@Returns:
+@Returns: The error quark used in GError messages
<!-- ##### ENUM GstPluginError ##### -->
You can query how many buffers are queued with the level argument.
</para>
<para>
-The default queue length is set to 10.
+The default queue length is set to 100.
</para>
<para>
The queue blocks by default.
<!-- ##### SECTION ./tmpl/gstmd5sink.sgml:Long_Description ##### -->
<para>
-
+MD5 Sink can be used to automate regression tests on media pipelines by
+computing a hash on the resulting buffers.
</para>
<!-- ##### SECTION ./tmpl/gstmd5sink.sgml:Short_Description ##### -->
-
+Compute a hash on buffer data.
<!-- ##### SECTION ./tmpl/gstmd5sink.sgml:Title ##### -->
You can query how many buffers are queued with the level argument.
</para>
<para>
-The default queue length is set to 10.
+The default queue length is set to 100.
</para>
<para>
The queue blocks by default.
@buf: a #GstBuffer to get parent of
-<!-- ##### MACRO GST_BUFFER_POOL ##### -->
-<para>
-
-</para>
-
-@buf:
-
<!-- ##### MACRO GST_BUFFER_POOL_LOCK ##### -->
<para>
Unlock the given bufferpool.
</para>
-<!-- ##### MACRO GST_DATA ##### -->
-<para>
-
-</para>
-
-@data:
-
-<!-- ##### MACRO GST_DATA_TYPE ##### -->
-<para>
-
-</para>
-
-@data:
-
<!-- ##### MACRO GST_DEBUG_CHAR_MODE ##### -->
<para>
</para>
+<<<<<<< gstreamer-unused.sgml
+
+
<!-- ##### USER_FUNCTION GstBufferCopyFunc ##### -->
<para>
This supplied function is used to copy the buffer contents.
@srcbuf: a #GstBuffer to copy from
@Returns: a newly allocated #GstBuffer copy of srcbuf
-<!-- ##### ENUM GstBufferFlag ##### -->
-<para>
-This enumeration type describes the flags that can be used for a buffer.
-</para>
-
-@GST_BUFFER_READONLY: buffer is read-only
-@GST_BUFFER_ORIGINAL: buffer is not a copy of another buffer
-@GST_BUFFER_DONTFREE: do not try to free the data when this buffer is unreferenced
-@GST_BUFFER_DISCONTINOUS: This buffer is the first one after a discontinuity in the stream
-@GST_BUFFER_KEY_UNIT: This buffer holds a key unit, a unit that can be decoded independently
- of other buffers
-@GST_BUFFER_PREROLL: This buffer should be decoded but not rendered, it is mainly used
- to resynchronise the stream
-
<!-- ##### USER_FUNCTION GstBufferFreeFunc ##### -->
<para>
This supplied function is called when the buffer data has to be freed.
@buf: a #GstBuffer to clear the buffer data of
+>>>>>>> 1.63
+
<!-- ##### USER_FUNCTION GstBufferPoolCreateFunction ##### -->
<para>
The function called when a buffer has to be created for this pool.
@connection:
+<!-- ##### FUNCTION gst_data_default_copy ##### -->
+<para>
+
+</para>
+
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gst_data_default_free ##### -->
+<para>
+
+</para>
+
+@data:
+
<!-- ##### FUNCTION gst_debug_print_stack_trace ##### -->
<para>
@GST_REGISTRY_REMOTE:
@GST_REGISTRY_DELAYED_LOADING:
+<!-- ##### STRUCT GstRegistry ##### -->
+<para>
+
+</para>
+
+@object:
+@priority:
+@flags:
+@name:
+@details:
+@loaded:
+@plugins:
+@paths:
+
<!-- ##### FUNCTION gst_registry_load ##### -->
<para>
@sched:
+<!-- ##### FUNCTION gst_scheduler_get_preferred_stack ##### -->
+<para>
+
+</para>
+
+@sched:
+@stack:
+@size:
+@Returns:
+
+
<!-- ##### FUNCTION gst_scheduler_reset ##### -->
<para>