GstQuarkId
GstPluginLoader
GstPluginLoaderFuncs
+GstAllocTrace
+GstAllocTraceFlags
</SECTION>
<SECTION>
<TITLE>GstBuffer</TITLE>
GstBuffer
GstBufferFlags
-GstBufferCopyFlags
GST_BUFFER_FLAGS
GST_BUFFER_FLAG_IS_SET
GST_BUFFER_FLAG_SET
GST_BUFFER_IS_DISCONT
gst_buffer_new
-gst_buffer_new_and_alloc
gst_buffer_new_allocate
gst_buffer_new_wrapped
gst_buffer_new_wrapped_full
gst_buffer_fill
gst_buffer_memset
+GstBufferCopyFlags
GST_BUFFER_COPY_METADATA
GST_BUFFER_COPY_ALL
gst_buffer_copy
gst_buffer_add_meta
gst_buffer_remove_meta
gst_buffer_iterate_meta
+GstBufferForeachMetaFunc
+gst_buffer_foreach_meta
<SUBSECTION Standard>
GstBufferClass
gst_buffer_get_type
gst_buffer_flags_get_type
gst_buffer_copy_flags_get_type
+GST_BUFFER_TIMESTAMP
+GST_BUFFER_TIMESTAMP_IS_VALID
</SECTION>
<SECTION>
GstMetaInitFunction
GstMetaFreeFunction
GstMetaTransformFunction
+GstMetaTransformCopy
+GST_META_TRANSFORM_IS_COPY
gst_meta_api_type_register
gst_meta_api_type_has_tag
+GST_META_TAG_MEMORY
gst_meta_register
gst_meta_get_info
<SUBSECTION Standard>
<TITLE>GstBufferPool</TITLE>
GstBufferPool
GstBufferPoolClass
-GstBufferPoolFlags
GST_BUFFER_POOL_IS_FLUSHING
-GstBufferPoolParams
gst_buffer_pool_new
-gst_buffer_pool_config_get
-gst_buffer_pool_config_set
+gst_buffer_pool_config_get_params
+gst_buffer_pool_config_set_params
+gst_buffer_pool_config_get_allocator
+gst_buffer_pool_config_set_allocator
+gst_buffer_pool_config_n_options
gst_buffer_pool_config_add_option
gst_buffer_pool_config_get_option
gst_buffer_pool_config_has_option
-gst_buffer_pool_config_n_options
+
gst_buffer_pool_get_options
gst_buffer_pool_has_option
gst_buffer_pool_set_active
gst_buffer_pool_is_active
+GstBufferPoolAcquireFlags
+GstBufferPoolAcquireParams
gst_buffer_pool_acquire_buffer
gst_buffer_pool_release_buffer
<SUBSECTION Standard>
GST_IS_BUFFER_POOL
GST_TYPE_BUFFER_POOL
gst_buffer_pool_get_type
-GST_TYPE_BUFFER_POOL_FLAGS
-gst_buffer_pool_flags_get_type
+GST_TYPE_BUFFER_POOL_ACQUIRE_FLAGS
+gst_buffer_pool_acquire_flags_get_type
GST_IS_BUFFER_POOL_CLASS
GST_BUFFER_POOL_GET_CLASS
</SECTION>
GST_CAPS_FLAG_UNSET
gst_caps_new_empty
+gst_caps_new_empty_simple
gst_caps_new_any
gst_caps_new_simple
gst_caps_new_full
gst_caps_is_fixed
gst_caps_is_equal
gst_caps_is_equal_fixed
+gst_caps_is_strictly_equal
gst_caps_is_always_compatible
gst_caps_is_subset
gst_caps_is_subset_structure
gst_caps_can_intersect
gst_caps_intersect
gst_caps_intersect_full
-gst_caps_union
gst_caps_normalize
gst_caps_simplify
gst_caps_replace
+gst_caps_take
gst_caps_to_string
gst_caps_from_string
gst_caps_subtract
gst_caps_make_writable
-gst_caps_ref
gst_caps_truncate
gst_caps_fixate
+gst_caps_ref
gst_caps_unref
<SUBSECTION Standard>
GST_CAPS
gst_sample_new
gst_sample_ref
gst_sample_unref
-gst_value_get_sample
-gst_value_set_sample
-gst_value_take_sample
<SUBSECTION Standard>
GST_IS_SAMPLE
GST_SAMPLE
gst_clock_unadjust_unlocked
gst_clock_get_calibration
gst_clock_set_calibration
+gst_clock_get_timeout
+gst_clock_set_timeout
gst_clock_id_get_time
gst_clock_id_wait
gst_clock_id_wait_async
gst_element_factory_get_icon_name
gst_element_factory_get_klass
gst_element_factory_get_longname
+gst_pad_get_caps_reffed
+gst_pad_peer_get_caps_reffed
+gst_buffer_new_and_alloc
+GST_BUFFER_TIMESTAMP
+GST_BUFFER_TIMESTAMP_IS_VALID
+gst_adapter_prev_timestamp
<SUBSECTION Private>
</SECTION>
<SECTION>
<FILE>gstcontrolsource</FILE>
<TITLE>GstControlSource</TITLE>
+GstValueArray
GstControlSource
GstControlSourceClass
GstControlSourceGetValue
GST_STATE_UNLOCK_FULL
GST_STATE_LOCK_FULL
GST_STATE_WAIT
-GST_STATE_TIMED_WAIT
+GST_STATE_WAIT_UNTIL
GST_STATE_SIGNAL
GST_STATE_BROADCAST
gst_seek_flags_get_type
gst_qos_type_get_type
gst_event_type_flags_get_type
+GST_TYPE_STREAM_CONFIG_FLAGS
+gst_stream_config_flags_get_type
</SECTION>
<SECTION>
gst_debug_print_stack_trace
GST_TIME_FORMAT
GST_TIME_ARGS
+gst_debug_bin_to_dot_file
+gst_debug_bin_to_dot_file_with_ts
<SUBSECTION Standard>
GST_TYPE_DEBUG_COLOR_FLAGS
GST_TYPE_DEBUG_LEVEL
<SECTION>
<FILE>gstmemory</FILE>
<TITLE>GstMemory</TITLE>
-GstMemory
-GstMemoryInfo
-GstAllocator
+
+gst_memory_alignment
+
GstMemoryFlags
-GstMapInfo
-GST_MAP_INFO_INIT
-GstMapFlags
GST_MEMORY_FLAGS
GST_MEMORY_FLAG_IS_SET
+GST_MEMORY_FLAG_UNSET
GST_MEMORY_IS_READONLY
+GST_MEMORY_IS_ZERO_PADDED
+GST_MEMORY_IS_ZERO_PREFIXED
+
+GstMemory
+
+GstMapFlags
+GstMapInfo
+GST_MAP_INFO_INIT
GST_MAP_READWRITE
+
+GstAllocationParams
+
GstAllocatorAllocFunction
GstMemoryMapFunction
GstMemoryUnmapFunction
GstMemoryShareFunction
GstMemoryIsSpanFunction
-gst_memory_alignment
+GstMemoryInfo
+
+GstAllocator
+
+gst_allocator_new
+gst_allocator_get_memory_type
+gst_allocator_ref
+gst_allocator_unref
+
+GST_ALLOCATOR_SYSMEM
+gst_allocator_find
+gst_allocator_register
+gst_allocator_set_default
+
+gst_allocation_params_init
+gst_allocation_params_copy
+gst_allocation_params_free
gst_allocator_alloc
+
gst_memory_new_wrapped
-gst_memory_make_mapped
gst_memory_ref
gst_memory_unref
+gst_memory_is_exclusive
+
gst_memory_get_sizes
gst_memory_resize
-gst_memory_is_exclusive
-
+gst_memory_make_mapped
gst_memory_map
gst_memory_unmap
gst_memory_share
gst_memory_is_span
-
-GST_ALLOCATOR_SYSMEM
-gst_allocator_find
-gst_allocator_register
-gst_allocator_set_default
<SUBSECTION Standard>
GST_TYPE_MEMORY
+gst_memory_get_type
GST_MEMORY_CAST
GST_TYPE_MAP_FLAGS
-GST_TYPE_MEMORY_FLAGS
gst_map_flags_get_type
+GST_TYPE_MEMORY_FLAGS
gst_memory_flags_get_type
-gst_memory_get_type
+GST_TYPE_ALLOCATION_PARAMS
+gst_allocation_params_get_type
+GST_TYPE_ALLOCATOR
+gst_allocator_get_type
</SECTION>
<SECTION>
gst_structure_change_type_get_type
gst_stream_status_type_get_type
gst_progress_type_get_type
-GST_MESSAGE_COND
+GST_MESSAGE_GET_COND
GST_MESSAGE_GET_LOCK
GST_MESSAGE_LOCK
GST_MESSAGE_SIGNAL
GST_PAD_LINK_CHECK_DEFAULT
GstFlowReturn
GstPadMode
-GstPadProbeReturn
-GstPadProbeType
-GST_PAD_PROBE_TYPE_BLOCKING
-GST_PAD_PROBE_TYPE_SCHEDULING
-GST_PAD_PROBE_TYPE_ALL_BOTH
-GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM
-GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM
-GST_PAD_PROBE_TYPE_DATA_BOTH
-GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM
-GST_PAD_PROBE_TYPE_DATA_UPSTREAM
-GST_PAD_PROBE_TYPE_EVENT_BOTH
-GST_PAD_PROBE_TYPE_QUERY_BOTH
<SUBSECTION Application>
gst_pad_get_name
gst_pad_is_active
-gst_pad_is_blocked
-gst_pad_is_blocking
+<SUBSECTION probes>
+GstPadProbeReturn
+GstPadProbeType
+GST_PAD_PROBE_TYPE_BLOCKING
+GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM
+GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM
+GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM
+GST_PAD_PROBE_TYPE_DATA_UPSTREAM
+GST_PAD_PROBE_TYPE_DATA_BOTH
+GST_PAD_PROBE_TYPE_EVENT_BOTH
+GST_PAD_PROBE_TYPE_QUERY_BOTH
+GST_PAD_PROBE_TYPE_ALL_BOTH
+GST_PAD_PROBE_TYPE_SCHEDULING
+
+GstPadProbeInfo
+GST_PAD_PROBE_INFO_TYPE
+GST_PAD_PROBE_INFO_ID
+GST_PAD_PROBE_INFO_DATA
+
+GST_PAD_PROBE_INFO_BUFFER
+GST_PAD_PROBE_INFO_BUFFER_LIST
+GST_PAD_PROBE_INFO_EVENT
+GST_PAD_PROBE_INFO_QUERY
+
+GST_PAD_PROBE_INFO_OFFSET
+GST_PAD_PROBE_INFO_SIZE
GstPadProbeCallback
gst_pad_add_probe
gst_pad_remove_probe
+gst_pad_is_blocked
+gst_pad_is_blocking
+
+<SUBSECTION offset>
gst_pad_get_offset
gst_pad_set_offset
+
<SUBSECTION Element>
gst_pad_new
gst_pad_new_from_template
GST_TYPE_PAD_PRESENCE
GST_TYPE_PAD_MODE
GST_TYPE_FLOW_RETURN
-GST_TYPE_PROBE_RETURN
-GST_TYPE_PROBE_TYPE
+GST_TYPE_PAD_PROBE_RETURN
+GST_TYPE_PAD_PROBE_TYPE
<SUBSECTION Private>
gst_pad_get_type
gst_pad_presence_get_type
gst_flow_return_get_type
gst_pad_mode_get_type
-gst_probe_return_get_type
-gst_probe_type_get_type
+gst_pad_probe_return_get_type
+gst_pad_probe_type_get_type
GST_PAD_NAME
GST_PAD_PARENT
GST_PAD_IS_SRC
GST_PAD_IS_SINK
GST_PAD_IS_FIXED_CAPS
-GST_PAD_NEEDS_EVENTS
GST_PAD_NEEDS_RECONFIGURE
+GST_PAD_HAS_PENDING_EVENTS
+GST_PAD_IS_PROXY_ALLOCATION
+GST_PAD_IS_PROXY_CAPS
+GST_PAD_NEEDS_PARENT
+GST_PAD_SET_PROXY_ALLOCATION
+GST_PAD_UNSET_PROXY_ALLOCATION
+GST_PAD_SET_PROXY_CAPS
+GST_PAD_UNSET_PROXY_CAPS
GST_PAD_IS_IN_GETCAPS
GST_PAD_MODE_ACTIVATE
<FILE>gstquery</FILE>
<TITLE>GstQuery</TITLE>
GstQuery
+
+GstQueryTypeFlags
+GST_QUERY_TYPE_BOTH
+GST_QUERY_MAKE_TYPE
+
GstQueryType
+
+GST_QUERY_TYPE
GST_QUERY_TYPE_NAME
-GstQueryTypeDefinition
+GST_QUERY_IS_UPSTREAM
+GST_QUERY_IS_DOWNSTREAM
+GST_QUERY_IS_SERIALIZED
+
+gst_query_type_get_flags
gst_query_type_get_name
gst_query_type_to_quark
-gst_query_type_register
-gst_query_type_get_by_nick
-gst_query_types_contains
-gst_query_type_get_details
-gst_query_type_iterate_definitions
gst_query_ref
gst_query_unref
gst_query_new_caps
gst_query_parse_caps
+gst_query_set_caps_result
gst_query_parse_caps_result
+gst_query_intersect_caps_result
gst_query_new_accept_caps
gst_query_parse_accept_caps
+gst_query_set_accept_caps_result
gst_query_parse_accept_caps_result
GstBufferingMode
gst_query_new_allocation
gst_query_parse_allocation
-gst_query_parse_allocation_params
-gst_query_parse_nth_allocation_memory
-gst_query_parse_nth_allocation_meta
-gst_query_set_allocation_params
-gst_query_add_allocation_memory
+
+gst_query_add_allocation_pool
+gst_query_get_n_allocation_pools
+gst_query_parse_nth_allocation_pool
+gst_query_set_nth_allocation_pool
+
+gst_query_add_allocation_param
+gst_query_get_n_allocation_params
+gst_query_parse_nth_allocation_param
+gst_query_set_nth_allocation_param
+
gst_query_add_allocation_meta
-gst_query_has_allocation_meta
-gst_query_get_n_allocation_memories
gst_query_get_n_allocation_metas
+gst_query_parse_nth_allocation_meta
+gst_query_remove_nth_allocation_meta
+gst_query_has_allocation_meta
+GstSchedulingFlags
gst_query_new_scheduling
gst_query_parse_scheduling
gst_query_set_scheduling
+gst_query_add_scheduling_mode
+gst_query_get_n_scheduling_modes
+gst_query_parse_nth_scheduling_mode
+gst_query_has_scheduling_mode
+
+gst_query_new_drain
+
<SUBSECTION Standard>
GstQueryClass
GST_QUERY
GST_TYPE_QUERY
GST_TYPE_QUERY_TYPE
GST_QUERY_GET_CLASS
-GST_QUERY_TYPE
+GST_TYPE_QUERY_TYPE_FLAGS
+gst_query_type_flags_get_type
GST_TYPE_BUFFERING_MODE
+gst_buffering_mode_get_type
+GST_TYPE_SCHEDULING_FLAGS
+gst_scheduling_flags_get_type
<SUBSECTION Private>
+GST_QUERY_NUM_SHIFT
gst_query_get_type
gst_query_type_get_type
-gst_buffering_mode_get_type
</SECTION>
GstURIHandler
GstURIHandlerInterface
GstURIType
+GstURIError
+gst_uri_error_quark
GST_URI_TYPE_IS_VALID
gst_uri_protocol_is_valid
gst_uri_protocol_is_supported
GST_URI_HANDLER_GET_INTERFACE
GST_TYPE_URI_HANDLER
GST_TYPE_URI_TYPE
+gst_uri_error_get_type
+GST_TYPE_URI_ERROR
+GST_URI_ERROR
<SUBSECTION Private>
gst_uri_handler_get_type
gst_uri_type_get_type
gst_util_uint64_scale_int_round
gst_util_uint64_scale_int_ceil
gst_util_greatest_common_divisor
+gst_util_greatest_common_divisor_int64
gst_util_fraction_to_double
gst_util_double_to_fraction
gst_util_fraction_multiply
gst_value_set_int_range
gst_value_get_int_range_min
gst_value_get_int_range_max
+gst_value_set_int_range_step
+gst_value_get_int_range_step
+
+<SUBSECTION bitmask>
+GST_VALUE_HOLDS_BITMASK
+GST_TYPE_BITMASK
+gst_value_set_bitmask
+gst_value_get_bitmask
<SUBSECTION int64range>
GST_VALUE_HOLDS_INT64_RANGE
gst_value_set_int64_range
gst_value_get_int64_range_min
gst_value_get_int64_range_max
+gst_value_set_int64_range_step
+gst_value_get_int64_range_step
<SUBSECTION doublerange>
GST_VALUE_HOLDS_DOUBLE_RANGE
gst_value_set_buffer
gst_value_take_buffer
+<SUBSECTION sample>
+GST_VALUE_HOLDS_SAMPLE
+gst_value_get_sample
+gst_value_set_sample
+gst_value_take_sample
+
<SUBSECTION>
GST_VALUE_LESS_THAN
GST_VALUE_EQUAL
gst_value_can_subtract
gst_value_intersect
gst_value_can_intersect
+gst_value_is_subset
gst_value_array_append_value
gst_value_array_get_size
gst_value_array_get_value
gst_int64_range_get_type
gst_value_array_get_type
gst_value_list_get_type
+gst_bitmask_get_type
</SECTION>
<SECTION>
#include <gst/gstmeta.h>
/**
- * GstBufferMetaFunc:
+ * GstBufferForeachMetaFunc:
* @buffer: a #GstBuffer
* @meta: a pointer to a #GstMeta
* @user_data: user data passed to gst_buffer_foreach_meta()
}
}
+/**
+ * gst_buffer_list_remove:
+ * @list: a #GstBufferList
+ * @idx: the index
+ * @length: the amount to remove
+ *
+ * Remove @length buffers starting from @idx in @list. The following buffers are
+ * moved to close the gap.
+ */
void
gst_buffer_list_remove (GstBufferList * list, guint idx, guint length)
{
}
}
+/**
+ * gst_clock_set_timeout:
+ * @clock: a #GstClock
+ * @timeout: a timeout
+ *
+ * Set the amount of time, in nanoseconds, to sample master and slave
+ * clocks
+ */
void
gst_clock_set_timeout (GstClock * clock, GstClockTime timeout)
{
+ g_return_if_fail (GST_IS_CLOCK (clock));
+
+ GST_CLOCK_SLAVE_LOCK (clock);
clock->priv->timeout = timeout;
+ GST_CLOCK_SLAVE_UNLOCK (clock);
}
+/**
+ * gst_clock_get_timeout:
+ * @clock: a #GstClock
+ *
+ * Get the amount of time that master and slave clocks are sampled.
+ *
+ * Returns: the interval between samples.
+ */
GstClockTime
gst_clock_get_timeout (GstClock * clock)
{
- return clock->priv->timeout;
+ GstClockTime result;
+
+ g_return_val_if_fail (GST_IS_CLOCK (clock), GST_CLOCK_TIME_NONE);
+
+ GST_CLOCK_SLAVE_LOCK (clock);
+ result = clock->priv->timeout;
+ GST_CLOCK_SLAVE_UNLOCK (clock);
+
+ return result;
}
static void
GST_CLOCK_SLAVE_UNLOCK (clock);
break;
case PROP_TIMEOUT:
- GST_CLOCK_SLAVE_LOCK (clock);
- priv->timeout = g_value_get_uint64 (value);
- GST_CLOCK_SLAVE_UNLOCK (clock);
+ gst_clock_set_timeout (clock, g_value_get_uint64 (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
GST_CLOCK_SLAVE_UNLOCK (clock);
break;
case PROP_TIMEOUT:
- GST_CLOCK_SLAVE_LOCK (clock);
- g_value_set_uint64 (value, priv->timeout);
- GST_CLOCK_SLAVE_UNLOCK (clock);
+ g_value_set_uint64 (value, gst_clock_get_timeout (clock));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
return factory->type;
}
+/**
+ * gst_element_factory_get_metadata:
+ * @factory,: a #GstElementFactory
+ * @key: a key
+ *
+ * Get the metadata on @factory with @key.
+ *
+ * Returns: the metadata with @key on @factory or %NULL when there was no
+ * metadata with the given @key.
+ */
const gchar *
gst_element_factory_get_metadata (GstElementFactory * factory,
const gchar * key)
/**
* gst_event_parse_gap:
+ * @event: a #GstEvent of type #GST_EVENT_GAP
* @timestamp: (out) (allow-none): location where to store the
* start time (pts) of the gap, or %NULL
* @duration: (out) (allow-none): location where to store the duration of
}
/**
- * gst_event_set_stream_config_setup_data:
+ * gst_event_parse_stream_config_setup_data:
* @event: a stream config event
* @buf: (out) (transfer none): location where to store the #GstBuffer with setup data
*
/**
* GST_EVENT_MAKE_TYPE:
* @num: the event number to create
- * @idx: the index in the sticky array
* @flags: the event flags
*
* when making custom event types, use this macro with the num and
#include "gst_private.h"
#include <gst/gstiterator.h>
+/**
+ * gst_iterator_copy:
+ * @it: a #GstIterator
+ *
+ * Copy the iterator and its state.
+ *
+ * Returns: a new copy of @it.
+ */
GstIterator *
gst_iterator_copy (const GstIterator * it)
{
*
* New allocators can be registered with gst_allocator_register().
* Allocators are identified by name and can be retrieved with
- * gst_allocator_find().
+ * gst_allocator_find(). gst_allocator_set_default() can be used to change the
+ * default allocator.
*
* New memory can be created with gst_memory_new_wrapped() that wraps the memory
* allocated elsewhere.
*
* Memory can be efficiently merged when gst_memory_is_span() returns TRUE.
*
- * Last reviewed on 2011-06-08 (0.11.0)
+ * Last reviewed on 2012-03-28 (0.11.3)
*/
#ifdef HAVE_CONFIG_H
(GBoxedCopyFunc) gst_allocation_params_copy,
(GBoxedFreeFunc) gst_allocation_params_free);
-/**
- * gst_memory_alignment:
- *
- * The default memory alignment in bytes - 1
- * an alignment of 7 would be the same as what malloc() guarantees.
- */
#if defined(MEMORY_ALIGNMENT_MALLOC)
size_t gst_memory_alignment = 7;
#elif defined(MEMORY_ALIGNMENT_PAGESIZE)
}
/**
- * gst_allocator_register:
+ * gst_allocator_new:
* @info: a #GstMemoryInfo
* @user_data: user data
* @notify: a #GDestroyNotify for @user_data
}
/**
- * gst_alocator_get_memory_type:
+ * gst_allocator_get_memory_type:
* @allocator: a #GstAllocator
*
* Get the memory type allocated by this allocator
}
/**
- * gst_alocator_ref:
+ * gst_allocator_ref:
* @allocator: a #GstAllocator
*
* Increases the refcount of @allocator.
{
g_return_val_if_fail (allocator != NULL, NULL);
- GST_CAT_TRACE (GST_CAT_MEMORY, "alocator %p, %d->%d", allocator,
+ GST_CAT_TRACE (GST_CAT_MEMORY, "allocator %p, %d->%d", allocator,
allocator->refcount, allocator->refcount + 1);
g_atomic_int_inc (&allocator->refcount);
typedef struct _GstAllocator GstAllocator;
typedef struct _GstAllocationParams GstAllocationParams;
+/**
+ * gst_memory_alignment:
+ *
+ * The default memory alignment in bytes - 1
+ * an alignment of 7 would be the same as what malloc() guarantees.
+ */
GST_EXPORT gsize gst_memory_alignment;
#define GST_MEMORY_CAST(mem) ((GstMemory *)(mem))
gpointer user_data[4];
} GstMapInfo;
+/**
+ * GST_MAP_INFO_INIT:
+ *
+ * Initializer for #GstMapInfo
+ */
#define GST_MAP_INFO_INIT { NULL, 0, NULL, 0, 0, }
/**
gpointer _gst_reserved[GST_PADDING];
};
+/**
+ * GstAllocator:
+ *
+ * An opaque type returned from gst_allocator_new() or gst_allocator_find()
+ * that can be used to allocator memory.
+ */
+
/* allocators */
GstAllocator * gst_allocator_new (const GstMemoryInfo * info,
gpointer user_data, GDestroyNotify notify);
*
* Messages are posted by objects in the pipeline and are passed to the
* application using the #GstBus.
-
+ *
* The basic use pattern of posting a message on a #GstBus is as follows:
*
* <example>
* SECTION:gstmeta
* @short_description: Buffer metadata
*
- * Last reviewed on December 17th, 2009 (0.10.26)
+ * The #GstMeta structure should be included as the first member of a #GstBuffer
+ * metadata structure. The structure defines the API of the metadata and should
+ * be accessible to all elements using the metadata.
+ *
+ * A metadata API is registered with gst_meta_api_type_register() which takes a
+ * name for the metadata API and some tags associated with the metadata.
+ * With gst_meta_api_type_has_tag() one can check if a certain metadata API
+ * contains a given tag.
+ *
+ * Multiple implementations of a metadata API can be registered.
+ * To implement a metadata API, gst_meta_register() should be used. This
+ * function takes all parameters needed to create, free and transform metadata
+ * along with the size of the metadata. The function returns a #GstMetaInfo
+ * structure that contains the information for the implementation of the API.
+ *
+ * A specific implementation can be retrieved by name with gst_meta_get_info().
+ *
+ * See #GstBuffer for how the metadata can be added, retrieved and removed from
+ * buffers.
+ *
+ * Last reviewed on 2012-03-28 (0.11.3)
*/
#include "gst_private.h"
*/
GST_EXPORT GQuark _gst_meta_transform_copy;
+/**
+ * GST_META_TRANSFORM_IS_COPY:
+ * @type: a transform type
+ *
+ * Check if the transform type is a copy transform
+ */
#define GST_META_TRANSFORM_IS_COPY(type) ((type) == _gst_meta_transform_copy)
/**
* SECTION:gstminiobject
* @short_description: Lightweight base class for the GStreamer object hierarchy
*
- * #GstMiniObject is a baseclass like #GObject, but has been stripped down of
- * features to be fast and small.
- * It offers sub-classing and ref-counting in the same way as #GObject does.
- * It has no properties and no signal-support though.
+ * #GstMiniObject is a simple structure that can be used to implement refcounted
+ * types.
*
- * Last reviewed on 2005-11-23 (0.9.5)
+ * Subclasses will include #GstMiniObject as the first member in their structure
+ * and then call gst_mini_object_init() to initialize the #GstMiniObject fields.
+ *
+ * gst_mini_object_ref() and gst_mini_object_unref() increment and decrement the
+ * refcount respectively. When the refcount of a mini-object reaches 0, the
+ * dispose function is called first and when this returns %TRUE, the free
+ * function of the miniobject is called.
+ *
+ * A copy can be made with gst_mini_object_copy().
+ *
+ * gst_mini_object_is_writable() will return %TRUE when the refcount of the
+ * object is exactly 1, meaning the current caller has the only reference to the
+ * object. gst_mini_object_make_writable() will return a writable version of the
+ * object, which might be a new copy when the refcount was not 1.
+ *
+ * Last reviewed on 2012-03-28 (0.11.3)
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
GstMiniObject * where_the_mini_object_was);
/**
- * GST_MINI_OBJECT_FLAGS:
- * @obj: MiniObject to return flags for.
+ * GST_MINI_OBJECT_TYPE:
+ * @obj: MiniObject to return type for.
*
- * This macro returns the entire set of flags for the mini-object.
+ * This macro returns the type of the mini-object.
*/
#define GST_MINI_OBJECT_TYPE(obj) (GST_MINI_OBJECT_CAST(obj)->type)
/**
gboolean gst_mini_object_take (GstMiniObject **olddata, GstMiniObject *newdata);
GstMiniObject * gst_mini_object_steal (GstMiniObject **olddata);
+/**
+ * GST_DEFINE_MINI_OBJECT_TYPE:
+ * @TypeName: name of the new type in CamelCase
+ * @type_name: name of the new type
+ *
+ * Define a new mini-object type with the given name
+ */
#define GST_DEFINE_MINI_OBJECT_TYPE(TypeName,type_name) \
G_DEFINE_BOXED_TYPE(TypeName,type_name, \
(GBoxedCopyFunc) gst_mini_object_ref, \
*
* #GstObject provides a root for the object hierarchy tree filed in by the
* GStreamer library. It is currently a thin wrapper on top of
- * #GObject. It is an abstract class that is not very usable on its own.
+ * #GInitiallyUnowned. It is an abstract class that is not very usable on its own.
*
* #GstObject gives us basic refcounting, parenting functionality and locking.
* Most of the function are just extended for special GStreamer needs and can be
* found under the same name in the base class of #GstObject which is #GObject
* (e.g. g_object_ref() becomes gst_object_ref()).
*
- * The most interesting difference between #GstObject and #GObject is the
- * "floating" reference count. A #GObject is created with a reference count of
- * 1, owned by the creator of the #GObject. (The owner of a reference is the
- * code section that has the right to call gst_object_unref() in order to
- * remove that reference.) A #GstObject is created with a reference count of 1
- * also, but it isn't owned by anyone; Instead, the initial reference count
- * of a #GstObject is "floating". The floating reference can be removed by
- * anyone at any time, by calling gst_object_sink(). gst_object_sink() does
- * nothing if an object is already sunk (has no floating reference).
- *
- * When you add a #GstElement to its parent container, the parent container will
- * do this:
- * <informalexample>
- * <programlisting>
- * gst_object_ref (GST_OBJECT (child_element));
- * gst_object_sink (GST_OBJECT (child_element));
- * </programlisting>
- * </informalexample>
- * This means that the container now owns a reference to the child element
- * (since it called gst_object_ref()), and the child element has no floating
- * reference.
- *
- * The purpose of the floating reference is to keep the child element alive
- * until you add it to a parent container, which then manages the lifetime of
- * the object itself:
- * <informalexample>
- * <programlisting>
- * element = gst_element_factory_make (factoryname, name);
- * // element has one floating reference to keep it alive
- * gst_bin_add (GST_BIN (bin), element);
- * // element has one non-floating reference owned by the container
- * </programlisting>
- * </informalexample>
- *
- * Another effect of this is, that calling gst_object_unref() on a bin object,
- * will also destoy all the #GstElement objects in it. The same is true for
- * calling gst_bin_remove().
- *
- * Special care has to be taken for all methods that gst_object_sink() an object
- * since if the caller of those functions had a floating reference to the object,
- * the object reference is now invalid.
+ * Since #GstObject dereives from #GInitiallyUnowned, it also inherits the
+ * floating reference. Be aware that functions such as gst_bin_add() and
+ * gst_element_add_pad() take ownership of the floating reference.
*
* In contrast to #GObject instances, #GstObject adds a name property. The functions
* gst_object_set_name() and gst_object_get_name() are used to set/get the name
* </para>
* </refsect2>
*
- * Last reviewed on 2005-11-09 (0.9.4)
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
#include "gst_private.h"
* SECTION:gstpad
* @short_description: Object contained by elements that allows links to
* other elements
- * @see_also: #GstPadTemplate, #GstElement, #GstEvent
+ * @see_also: #GstPadTemplate, #GstElement, #GstEvent, #GstQuery, #GstBuffer
*
* A #GstElement is linked to other elements via "pads", which are extremely
* light-weight generic link points.
- * After two pads are retrieved from an element with gst_element_get_pad(),
- * the pads can be link with gst_pad_link(). (For quick links,
- * you can also use gst_element_link(), which will make the obvious
- * link for you if it's straightforward.)
*
- * Pads are typically created from a #GstPadTemplate with
- * gst_pad_new_from_template().
+ * Pads have a #GstPadDirection, source pads produce data, sink pads consume
+ * data.
*
- * Pads have #GstCaps attached to it to describe the media type they are
- * capable of dealing with. gst_pad_query_caps() and gst_pad_set_caps() are
- * used to manipulate the caps of the pads.
- * Pads created from a pad template cannot set capabilities that are
- * incompatible with the pad template capabilities.
+ * Pads are typically created from a #GstPadTemplate with
+ * gst_pad_new_from_template() and are then added to a #GstElement. This usually
+ * happens when the element is created but it can also happen dynamically based
+ * on the data that the element is processing or based on the pads that the
+ * application requests.
*
* Pads without pad templates can be created with gst_pad_new(),
* which takes a direction and a name as an argument. If the name is NULL,
* then a guaranteed unique name will be assigned to it.
*
+ * A #GstElement creating a pad will typically use the various
+ * gst_pad_set_*_function() calls to register callbacks for events, queries or
+ * dataflow on the pads.
+ *
* gst_pad_get_parent() will retrieve the #GstElement that owns the pad.
*
- * A #GstElement creating a pad will typically use the various
- * gst_pad_set_*_function() calls to register callbacks for various events
- * on the pads.
+ * After two pads are retrieved from an element with gst_element_get_pad(),
+ * the pads can be linked with gst_pad_link(). (For quick links,
+ * you can also use gst_element_link(), which will make the obvious
+ * link for you if it's straightforward.). Pads can be unlinked again with
+ * gst_pad_unlink(). gst_pad_get_peer() can be used to check what the pad is
+ * linked to.
+ *
+ * Before dataflow is possible on the pads, they need to be activated with
+ * gst_pad_set_active().
+ *
+ * gst_pad_query() and gst_pad_peer_query() can be used to query various
+ * properties of the pad and the stream.
+ *
+ * To send a #GstEvent on a pad, use gst_pad_send_event() and
+ * gst_pad_push_event(). Some events will be sticky on the pad, meaning that
+ * after they pass on the pad they can be queried later with
+ * gst_pad_get_sticky_event() and gst_pad_sticky_events_foreach().
+ * gst_pad_get_current_caps() and gst_pad_has_current_caps() are convenience
+ * functions to query the current sticky CAPS event on a pad.
*
* GstElements will use gst_pad_push() and gst_pad_pull_range() to push out
* or pull in a buffer.
*
- * To send a #GstEvent on a pad, use gst_pad_send_event() and
- * gst_pad_push_event().
+ * The dataflow, events and queries that happen on a pad can be monitored with
+ * probes that can be installed with gst_pad_add_probe(). gst_pad_is_blocked()
+ * can be used to check if a block probe is installed on the pad.
+ * gst_pad_is_blocking() checks if the blocking probe is currently blocking the
+ * pad. gst_pad_remove_probe() is used to remove a previously installed probe
+ * and unblock blocking probes if any.
+ *
+ * Pad have an offset that can be retrieved with gst_pad_get_offset(). This
+ * offset will be applied to the running_time of all data passing over the pad.
+ * gst_pad_set_offset() can be used to change the offset.
+ *
+ * Convenience functions exist to start, pause and stop the task on a pad with
+ * gst_pad_start_task(), gst_pad_pause_task() and gst_pad_stop_task()
+ * respectively.
*
- * Last reviewed on 2006-07-06 (0.10.9)
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
#include "gst_private.h"
typedef struct _GstPad GstPad;
typedef struct _GstPadPrivate GstPadPrivate;
typedef struct _GstPadClass GstPadClass;
+typedef struct _GstPadProbeInfo GstPadProbeInfo;
/**
* GstPadDirection:
*
* Info passed in the #GstPadProbeCallback.
*/
-typedef struct
+struct _GstPadProbeInfo
{
GstPadProbeType type;
gulong id;
guint64 offset;
guint size;
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
-} GstPadProbeInfo;
+};
#define GST_PAD_PROBE_INFO_TYPE(d) ((d)->type)
#define GST_PAD_PROBE_INFO_ID(d) ((d)->id)
* GST_PAD_SINK, // the direction of the pad
* GST_PAD_ALWAYS, // when this pad will be present
* GST_STATIC_CAPS ( // the capabilities of the padtemplate
- * "audio/x-raw-int, "
+ * "audio/x-raw, "
* "channels = (int) [ 1, 6 ]"
* )
* );
* A #GstPipeline is a special #GstBin used as the toplevel container for
* the filter graph. The #GstPipeline will manage the selection and
* distribution of a global #GstClock as well as provide a #GstBus to the
- * application. It will also implement a default behaviour for managing
- * seek events (see gst_element_seek()).
+ * application.
*
* gst_pipeline_new() is used to create a pipeline. when you are done with
* the pipeline, use gst_object_unref() to free its resources including all
* in the PLAYING state. This default behaviour can be changed with the
* gst_element_set_start_time() method.
*
- * When sending a flushing seek event to a GstPipeline (see
- * gst_element_seek()), it will make sure that the pipeline is properly
- * PAUSED and resumed as well as set the new running time to 0 when the
- * seek succeeded.
- *
- * Last reviewed on 2009-05-29 (0.10.24)
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
#include "gst_private.h"
/**
* SECTION:gstquery
- * @short_description: Dynamically register new query types. Provide functions
- * to create queries, and to set and parse values in them.
+ * @short_description: Provide functions to create queries, and to set and parse
+ * values in them.
* @see_also: #GstPad, #GstElement
*
- * GstQuery functions are used to register new query types to the gstreamer
- * core and use them.
* Queries can be performed on pads (gst_pad_query()) and elements
* (gst_element_query()). Please note that some queries might need a running
* pipeline to work.
* </programlisting>
* </example>
*
- * Last reviewed on 2006-02-14 (0.10.4)
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
-/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
#include "gst_private.h"
#include "gstinfo.h"
#include "gstquery.h"
/**
* gst_query_parse_nth_allocation_pool:
* @query: A valid #GstQuery of type GST_QUERY_ALLOCATION.
+ * @index: index to parse
* @pool: (out) (allow-none) (transfer none): the #GstBufferPool
* @size: (out) (allow-none): the size
* @min_buffers: (out) (allow-none): the min buffers
/**
* GST_QUERY_MAKE_TYPE:
* @num: the query number to create
- * @idx: the index in the sticky array
* @flags: the query flags
*
* when making custom query types, use this macro with the num and
*
* The #GstRegistry object is a list of plugins and some functions for dealing
* with them. Each #GstPlugin is matched 1-1 with a file on disk, and may or may
- * not be loaded at a given time. There may be multiple #GstRegistry objects,
- * but the "default registry" is the only object that has any meaning to the
- * core.
- *
- * The registry file is actually a cache of plugin information. This is
- * unlike versions prior to 0.10, where the registry file was the primary source
- * of plugin information, and was created by the gst-register command.
+ * not be loaded at a given time.
*
* The primary source, at all times, of plugin information is each plugin file
* itself. Thus, if an application wants information about a particular plugin,
*
* <emphasis role="bold">Implementation notes:</emphasis>
*
- * The "cache" and "default registry" are different concepts and can represent
+ * The "cache" and "registry" are different concepts and can represent
* different sets of plugins. For various reasons, at init time, the cache is
* stored in the default registry, and plugins not relevant to the current
* process are marked with the %GST_PLUGIN_FLAG_CACHED bit. These plugins are
* removed at the end of initialization.
+ *
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
#ifdef HAVE_CONFIG_H
*
* A #GstSample is a small object containing data, a type, timing and
* extra arbitrary information.
+ *
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
#include "gst_private.h"
#include "gstsample.h"
-/**
- * GstSample:
- *
- */
struct _GstSample
{
GstMiniObject mini_object;
* normally be left to their default 0 value. The stop position is left to -1 unless
* explicitly configured to a different value after a seek event.
*
- * The current position in the segment should be set with the gst_segment_set_last_stop().
- * The public last_stop field contains the last set stop position in the segment.
+ * The current position in the segment should be set by changing the position
+ * member in the structure.
*
* For elements that perform seeks, the current segment should be updated with the
- * gst_segment_set_seek() and the values from the seek event. This method will update
- * all the segment fields. The last_stop field will contain the new playback position.
+ * gst_segment_do_seek() and the values from the seek event. This method will update
+ * all the segment fields. The position field will contain the new playback position.
* If the cur_type was different from GST_SEEK_TYPE_NONE, playback continues from
- * the last_stop position, possibly with updated flags or rate.
+ * the position position, possibly with updated flags or rate.
*
- * For elements that want to use #GstSegment to track the playback region, use
- * gst_segment_set_newsegment() to update the segment fields with the information from
- * the newsegment event. The gst_segment_clip() method can be used to check and clip
+ * For elements that want to use #GstSegment to track the playback region,
+ * update the segment fields with the information from the newsegment event.
+ * The gst_segment_clip() method can be used to check and clip
* the media data to the segment boundaries.
*
* For elements that want to synchronize to the pipeline clock, gst_segment_to_running_time()
* can be used to convert a timestamp to a value that can be used to synchronize
- * to the clock. This function takes into account all accumulated segments as well as
+ * to the clock. This function takes into account the base as well as
* any rate or applied_rate conversions.
*
* For elements that need to perform operations on media data in stream_time,
* gst_segment_to_stream_time() can be used to convert a timestamp and the segment
* info to stream time (which is always between 0 and the duration of the stream).
*
- * Last reviewed on 2007-05-17 (0.10.13)
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
/**
return result;
}
+/**
+ * gst_segment_copy_into:
+ * @src: (transfer none): a #GstSegment
+ * @dest: (transfer none): a #GstSegment
+ *
+ * Copy the contents of @src into @dest.
+ */
void
gst_segment_copy_into (const GstSegment * src, GstSegment * dest)
{
* as GQuarks and the values can be of any GType.
*
* In addition to the key/value pairs, a #GstStructure also has a name. The name
- * starts with a letter and can be folled by letters, numbers and any of "/-_.:".
+ * starts with a letter and can be filled by letters, numbers and any of "/-_.:".
*
* #GstStructure is used by various GStreamer subsystems to store information
* in a flexible and extensible way. A #GstStructure does not have a refcount
- * because it usually is part of a higher level object such as #GstCaps. It
- * provides a means to enforce mutability using the refcount of the parent
- * with the gst_structure_set_parent_refcount() method.
+ * because it usually is part of a higher level object such as #GstCaps,
+ * #GstMessage, #GstEvent, #GstQuery. It provides a means to enforce mutability
+ * using the refcount of the parent with the gst_structure_set_parent_refcount()
+ * method.
*
* A #GstStructure can be created with gst_structure_new_empty() or
* gst_structure_new(), which both take a name and an optional set of
* Strings in structures must be ASCII or UTF-8 encoded. Other encodings are
* not allowed. Strings must not be empty either, but may be NULL.
*
- * Last reviewed on 2009-06-08 (0.10.23)
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
#ifdef HAVE_CONFIG_H
* stopped and the thread is stopped.
*
* After creating a #GstTask, use gst_object_unref() to free its resources. This can
- * only be done it the task is not running anymore.
+ * only be done when the task is not running anymore.
*
* Task functions can send a #GstMessage to send out-of-band data to the
* application. The application can receive messages from the #GstBus in its
* mainloop.
*
- * For debugging perposes, the task will configure its object name as the thread
+ * For debugging purposes, the task will configure its object name as the thread
* name on Linux. Please note that the object name should be configured before the
* task is started; changing the object name after the task has been started, has
* no effect on the thread name.
*
- * Last reviewed on 2010-03-15 (0.10.29)
+ * Last reviewed on 2012-03-29 (0.11.3)
*/
#include "gst_private.h"
* Boston, MA 02111-1307, USA.
*/
-/**
- * SECTION:gsttrace
- * @short_description: Tracing functionality
- *
- * Traces allows to track object allocation. They provide a instance counter per
- * #GType. The counter is incremented for each object allocated and decremented
- * it when it's freed.
- *
- * <example>
- * <title>Tracing object instances</title>
- * <programlisting>
- * // trace un-freed object instances
- * gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
- * if (!gst_alloc_trace_available ()) {
- * g_warning ("Trace not available (recompile with trace enabled).");
- * }
- * gst_alloc_trace_print_live ();
- * // do something here
- * gst_alloc_trace_print_live ();
- * </programlisting>
- * </example>
- *
- * Last reviewed on 2005-11-21 (0.9.5)
- */
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
* SECTION:gsturihandler
* @short_description: Interface to ease URI handling in plugins.
*
- * The URIHandler is an interface that is implemented by Source and Sink
+ * The URIHandler is an interface that is implemented by Source and Sink
* #GstElement to simplify then handling of URI.
*
* An application can use the following functions to quickly get an element
return TRUE;
}
+/**
+ * gst_value_is_subset:
+ * @value1: a #GValue
+ * @value2: a #GValue
+ *
+ * Check that @value1 is a subset of @value2.
+ *
+ * Return: %TRUE is @value1 is a subset of @value2
+ */
gboolean
gst_value_is_subset (const GValue * value1, const GValue * value2)
{