<root>
<enum name="GstAllocTraceFlags">
<description>
Flags indicating which tracing feature to enable.

</description>
<parameters>
<parameter name="GST_ALLOC_TRACE_NONE">
<parameter_description> No tracing specified or desired.
</parameter_description>
</parameter>
<parameter name="GST_ALLOC_TRACE_LIVE">
<parameter_description> Trace number of non-freed memory.
</parameter_description>
</parameter>
<parameter name="GST_ALLOC_TRACE_MEM_LIVE">
<parameter_description> Trace pointers of unfreed memory.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAllocatorFlags">
<description>
Flags for allocators.

</description>
<parameters>
<parameter name="GST_ALLOCATOR_FLAG_CUSTOM_ALLOC">
<parameter_description> The allocator has a custom alloc function.
</parameter_description>
</parameter>
<parameter name="GST_ALLOCATOR_FLAG_LAST">
<parameter_description> first flag that can be used for custom purposes
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstAppSink::eos">
<description>
Signal that the end-of-stream has been reached. This signal is emitted from
the steaming thread.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> the appsink element that emitted the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstAppSink::new-preroll">
<description>
Signal that a new preroll sample is available.

This signal is emitted from the steaming thread and only when the
&quot;emit-signals&quot; property is %TRUE.

The new preroll sample can be retrieved with the &quot;pull-preroll&quot; action
signal or gst_app_sink_pull_preroll() either from this signal callback
or from any other thread.

Note that this signal is only emitted when the &quot;emit-signals&quot; property is
set to %TRUE, which it is not by default for performance reasons.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> the appsink element that emitted the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstAppSink::new-sample">
<description>
Signal that a new sample is available.

This signal is emitted from the steaming thread and only when the
&quot;emit-signals&quot; property is %TRUE.

The new sample can be retrieved with the &quot;pull-sample&quot; action
signal or gst_app_sink_pull_sample() either from this signal callback
or from any other thread.

Note that this signal is only emitted when the &quot;emit-signals&quot; property is
set to %TRUE, which it is not by default for performance reasons.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> the appsink element that emited the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstAppSink::pull-preroll">
<description>
Get the last preroll sample in @appsink. This was the sample that caused the
appsink to preroll in the PAUSED state. This sample can be pulled many times
and remains available to the application even after EOS.

This function is typically used when dealing with a pipeline in the PAUSED
state. Calling this function after doing a seek will give the sample right
after the seek position.

Note that the preroll sample will also be returned as the first sample
when calling gst_app_sink_pull_sample() or the &quot;pull-sample&quot; action signal.

If an EOS event was received before any buffers, this function returns
%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.

This function blocks until a preroll sample or EOS is received or the appsink
element is set to the READY/NULL state.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> the appsink element to emit this signal on
</parameter_description>
</parameter>
</parameters>
<return> a #GstSample or NULL when the appsink is stopped or EOS.
</return>
</signal>

<signal name="GstAppSink::pull-sample">
<description>
This function blocks until a sample or EOS becomes available or the appsink
element is set to the READY/NULL state.

This function will only return samples when the appsink is in the PLAYING
state. All rendered samples will be put in a queue so that the application
can pull samples at its own rate.

Note that when the application does not pull samples fast enough, the
queued samples could consume a lot of memory, especially when dealing with
raw video frames. It's possible to control the behaviour of the queue with
the &quot;drop&quot; and &quot;max-buffers&quot; properties.

If an EOS event was received before any buffers, this function returns
%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> the appsink element to emit this signal on
</parameter_description>
</parameter>
</parameters>
<return> a #GstSample or NULL when the appsink is stopped or EOS.
</return>
</signal>

<signal name="GstAppSrc::block">
<description>
When max-bytes are queued and after the enough-data signal has been emitted,
block any further push-buffer calls until the amount of queued bytes drops
below the max-bytes limit.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::caps">
<description>
The GstCaps that will negotiated downstream and will be put
on outgoing buffers.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::emit-signals">
<description>
Make appsrc emit the &quot;need-data&quot;, &quot;enough-data&quot; and &quot;seek-data&quot; signals.
This option is by default enabled for backwards compatibility reasons but
can disabled when needed because signal emission is expensive.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::empty-percent">
<description>
Make appsrc emit the &quot;need-data&quot; signal when the amount of bytes in the
queue drops below this percentage of max-bytes.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::end-of-stream">
<description>
Notify @appsrc that no more buffer are available.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> the appsrc
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::enough-data">
<description>
Signal that the source has enough data. It is recommended that the
application stops calling push-buffer until the need-data signal is
emitted again to avoid excessive buffer queueing.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> the appsrc element that emitted the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::format">
<description>
The format to use for segment events. When the source is producing
timestamped buffers this property should be set to GST_FORMAT_TIME.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::is-live">
<description>
Instruct the source to behave like a live source. This includes that it
will only push out buffers in the PLAYING state.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::max-bytes">
<description>
The maximum amount of bytes that can be queued internally.
After the maximum amount of bytes are queued, appsrc will emit the
&quot;enough-data&quot; signal.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::max-latency">
<description>
The maximum latency of the source. A value of -1 means an unlimited amout
of latency.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::min-latency">
<description>
The minimum latency of the source. A value of -1 will use the default
latency calculations of #GstBaseSrc.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::need-data">
<description>
Signal that the source needs more data. In the callback or from another
thread you should call push-buffer or end-of-stream.

@length is just a hint and when it is set to -1, any number of bytes can be
pushed into @appsrc.

You can call push-buffer multiple times until the enough-data signal is
fired.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> the appsrc element that emitted the signal
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the amount of bytes needed.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::push-buffer">
<description>
Adds a buffer to the queue of buffers that the appsrc element will
push to its source pad. This function does not take ownership of the
buffer so the buffer needs to be unreffed after calling this function.

When the block property is TRUE, this function can block until free space
becomes available in the queue.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> the appsrc
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a buffer to push
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::seek-data">
<description>
Seek to the given offset. The next push-buffer should produce buffers from
the new @offset.
This callback is only called for seekable stream types.


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> the appsrc element that emitted the signal
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset to seek to
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the seek succeeded.
</return>
</signal>

<signal name="GstAppSrc::size">
<description>
The total size in bytes of the data stream. If the total size is known, it
is recommended to configure it with this property.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstAppSrc::stream-type">
<description>
The type of stream that this source is producing.  For seekable streams the
application should connect to the seek-data signal.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<enum name="GstAppStreamType">
<description>
The stream type.

</description>
<parameters>
<parameter name="GST_APP_STREAM_TYPE_STREAM">
<parameter_description> No seeking is supported in the stream, such as a
live stream.
</parameter_description>
</parameter>
<parameter name="GST_APP_STREAM_TYPE_SEEKABLE">
<parameter_description> The stream is seekable but seeking might not
be very fast, such as data from a webserver.
</parameter_description>
</parameter>
<parameter name="GST_APP_STREAM_TYPE_RANDOM_ACCESS">
<parameter_description> The stream is seekable and seeking is fast,
such as in a local file.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioBaseSinkSlaveMethod">
<description>
Different possible clock slaving algorithms used when the internal audio
clock is not selected as the pipeline master clock.

</description>
<parameters>
<parameter name="GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE">
<parameter_description> Resample to match the master clock
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_BASE_SINK_SLAVE_SKEW">
<parameter_description> Adjust playout pointer when master clock
drifts too much.
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_BASE_SINK_SLAVE_NONE">
<parameter_description> No adjustment is done.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioBaseSrcSlaveMethod">
<description>
Different possible clock slaving algorithms when the internal audio clock was
not selected as the pipeline clock.

</description>
<parameters>
<parameter name="GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE">
<parameter_description> Resample to match the master clock.
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP">
<parameter_description> Retimestamp output buffers with master
clock time.
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_BASE_SRC_SLAVE_SKEW">
<parameter_description> Adjust capture pointer when master clock
drifts too much.
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_BASE_SRC_SLAVE_NONE">
<parameter_description> No adjustment is done.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioCdSrcMode">
<description>
Mode in which the CD audio source operates. Influences timestamping,
EOS handling and seeking.

</description>
<parameters>
<parameter name="GST_AUDIO_CD_SRC_MODE_NORMAL">
<parameter_description> each single track is a stream
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CD_SRC_MODE_CONTINUOUS">
<parameter_description> the entire disc is a single stream
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioChannelPosition">
<description>
Audio channel positions.

These are the channels defined in SMPTE 2036-2-2008
Table 1 for 22.2 audio systems with the Surround and Wide channels from
DTS Coherent Acoustics (v.1.3.1) and 10.2 and 7.1 layouts. In the caps the
actual channel layout is expressed with a channel count and a channel mask,
which describes the existing channels. The positions in the bit mask correspond
to the enum values.
For negotiation it is allowed to have more bits set in the channel mask than
the number of channels to specify the allowed channel positions but this is
not allowed in negotiated caps. It is not allowed in any situation other
than the one mentioned below to have less bits set in the channel mask than
the number of channels.

@GST_AUDIO_CHANNEL_POSITION_MONO can only be used with a single mono channel that
has no direction information and would be mixed into all directional channels.
This is expressed in caps by having a single channel and no channel mask.

@GST_AUDIO_CHANNEL_POSITION_NONE can only be used if all channels have this position.
This is expressed in caps by having a channel mask with no bits set.

As another special case it is allowed to have two channels without a channel mask.
This implicitely means that this is a stereo stream with a front left and front right
channel.

</description>
<parameters>
<parameter name="GST_AUDIO_CHANNEL_POSITION_MONO">
<parameter_description> Mono without direction;
can only be used with 1 channel
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT">
<parameter_description> Front left
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT">
<parameter_description> Front right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER">
<parameter_description> Front center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_LFE1">
<parameter_description> Low-frequency effects 1 (subwoofer)
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT">
<parameter_description> Rear left
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT">
<parameter_description> Rear right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER">
<parameter_description> Front left of center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER">
<parameter_description> Front right of center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER">
<parameter_description> Rear center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_LFE2">
<parameter_description> Low-frequency effects 2 (subwoofer)
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT">
<parameter_description> Side left
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT">
<parameter_description> Side right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT">
<parameter_description> Top front left
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT">
<parameter_description> Top front right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER">
<parameter_description> Top front center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_CENTER">
<parameter_description> Top center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT">
<parameter_description> Top rear left
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT">
<parameter_description> Top rear right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT">
<parameter_description> Top side right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT">
<parameter_description> Top rear right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER">
<parameter_description> Top rear center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER">
<parameter_description> Bottom front center
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT">
<parameter_description> Bottom front left
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT">
<parameter_description> Bottom front right
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT">
<parameter_description> Wide left (between front left and side left)
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT">
<parameter_description> Wide right (between front right and side right)
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT">
<parameter_description> Surround left (between rear left and side left)
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT">
<parameter_description> Surround right (between rear right and side right)
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_NONE">
<parameter_description> used for position-less channels, e.g.
from a sound card that records 1024 channels; mutually exclusive with
any other channel position
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_CHANNEL_POSITION_INVALID">
<parameter_description> invalid position
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioFlags">
<description>
Extra audio flags

</description>
<parameters>
<parameter name="GST_AUDIO_FLAG_NONE">
<parameter_description> no valid flag
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FLAG_UNPOSITIONED">
<parameter_description> the position array explicitly
contains unpositioned channels.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioFormat">
<description>
Enum value describing the most common audio formats.

</description>
<parameters>
<parameter name="GST_AUDIO_FORMAT_UNKNOWN">
<parameter_description> unknown or unset audio format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_ENCODED">
<parameter_description> encoded audio format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S8">
<parameter_description> 8 bits in 8 bits, signed
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U8">
<parameter_description> 8 bits in 8 bits, unsigned
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S16LE">
<parameter_description> 16 bits in 16 bits, signed, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S16BE">
<parameter_description> 16 bits in 16 bits, signed, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U16LE">
<parameter_description> 16 bits in 16 bits, unsigned, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U16BE">
<parameter_description> 16 bits in 16 bits, unsigned, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S24_32LE">
<parameter_description> 24 bits in 32 bits, signed, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S24_32BE">
<parameter_description> 24 bits in 32 bits, signed, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U24_32LE">
<parameter_description> 24 bits in 32 bits, unsigned, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U24_32BE">
<parameter_description> 24 bits in 32 bits, unsigned, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S32LE">
<parameter_description> 32 bits in 32 bits, signed, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S32BE">
<parameter_description> 32 bits in 32 bits, signed, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U32LE">
<parameter_description> 32 bits in 32 bits, unsigned, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U32BE">
<parameter_description> 32 bits in 32 bits, unsigned, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S24LE">
<parameter_description> 24 bits in 24 bits, signed, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S24BE">
<parameter_description> 24 bits in 24 bits, signed, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U24LE">
<parameter_description> 24 bits in 24 bits, unsigned, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U24BE">
<parameter_description> 24 bits in 24 bits, unsigned, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S20LE">
<parameter_description> 20 bits in 24 bits, signed, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S20BE">
<parameter_description> 20 bits in 24 bits, signed, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U20LE">
<parameter_description> 20 bits in 24 bits, unsigned, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U20BE">
<parameter_description> 20 bits in 24 bits, unsigned, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S18LE">
<parameter_description> 18 bits in 24 bits, signed, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S18BE">
<parameter_description> 18 bits in 24 bits, signed, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U18LE">
<parameter_description> 18 bits in 24 bits, unsigned, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U18BE">
<parameter_description> 18 bits in 24 bits, unsigned, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_F32LE">
<parameter_description> 32-bit floating point samples, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_F32BE">
<parameter_description> 32-bit floating point samples, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_F64LE">
<parameter_description> 64-bit floating point samples, little endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_F64BE">
<parameter_description> 64-bit floating point samples, big endian
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S16">
<parameter_description> 16 bits in 16 bits, signed, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U16">
<parameter_description> 16 bits in 16 bits, unsigned, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S24_32">
<parameter_description> 24 bits in 32 bits, signed, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U24_32">
<parameter_description> 24 bits in 32 bits, unsigned, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S32">
<parameter_description> 32 bits in 32 bits, signed, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U32">
<parameter_description> 32 bits in 32 bits, unsigned, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S24">
<parameter_description> 24 bits in 24 bits, signed, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U24">
<parameter_description> 24 bits in 24 bits, unsigned, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S20">
<parameter_description> 20 bits in 24 bits, signed, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U20">
<parameter_description> 20 bits in 24 bits, unsigned, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_S18">
<parameter_description> 18 bits in 24 bits, signed, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_U18">
<parameter_description> 18 bits in 24 bits, unsigned, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_F32">
<parameter_description> 32-bit floating point samples, native endianness
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_F64">
<parameter_description> 64-bit floating point samples, native endianness
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioFormatFlags">
<description>
The different audio flags that a format info can have.

</description>
<parameters>
<parameter name="GST_AUDIO_FORMAT_FLAG_INTEGER">
<parameter_description> integer samples
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_FLAG_FLOAT">
<parameter_description> float samples
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_FLAG_SIGNED">
<parameter_description> signed samples
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_FLAG_COMPLEX">
<parameter_description> complex layout
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_FORMAT_FLAG_UNPACK">
<parameter_description> the format can be used in
#GstAudioFormatUnpack and #GstAudioFormatPack functions
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioLayout">
<description>
Layout of the audio samples for the different channels.

</description>
<parameters>
<parameter name="GST_AUDIO_LAYOUT_INTERLEAVED">
<parameter_description> interleaved audio
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_LAYOUT_NON_INTERLEAVED">
<parameter_description> non-interleaved audio
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioPackFlags">
<description>
The different flags that can be used when packing and unpacking.

</description>
<parameters>
<parameter name="GST_AUDIO_PACK_FLAG_NONE">
<parameter_description> No flag
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioRingBufferFormatType">
<description>
The format of the samples in the audioringbuffer.

</description>
<parameters>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW">
<parameter_description> samples in linear or float
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW">
<parameter_description> samples in mulaw
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW">
<parameter_description> samples in alaw
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM">
<parameter_description> samples in ima adpcm
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG">
<parameter_description> samples in mpeg audio (but not AAC) format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM">
<parameter_description> samples in gsm format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958">
<parameter_description> samples in IEC958 frames (e.g. AC3)
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3">
<parameter_description> samples in AC3 format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3">
<parameter_description> samples in EAC3 format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS">
<parameter_description> samples in DTS format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC">
<parameter_description> samples in MPEG-2 AAC format
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC">
<parameter_description> samples in MPEG-4 AAC format
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstAudioRingBufferState">
<description>
The state of the audioringbuffer.

</description>
<parameters>
<parameter name="GST_AUDIO_RING_BUFFER_STATE_STOPPED">
<parameter_description> The audioringbuffer is stopped
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_STATE_PAUSED">
<parameter_description> The audioringbuffer is paused
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_STATE_STARTED">
<parameter_description> The audioringbuffer is started
</parameter_description>
</parameter>
<parameter name="GST_AUDIO_RING_BUFFER_STATE_ERROR">
<parameter_description> The audioringbuffer has encountered an
error after it has been started, e.g. because the device was
disconnected (Since 1.2)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstBaseParseFrameFlags">
<description>
Flags to be used in a #GstBaseParseFrame.

</description>
<parameters>
<parameter name="GST_BASE_PARSE_FRAME_FLAG_NONE">
<parameter_description> no flag
</parameter_description>
</parameter>
<parameter name="GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME">
<parameter_description> set by baseclass if current frame
is passed for processing to the subclass for the first time
(and not set on subsequent calls with same data).
</parameter_description>
</parameter>
<parameter name="GST_BASE_PARSE_FRAME_FLAG_NO_FRAME">
<parameter_description> set to indicate this buffer should not be
counted as frame, e.g. if this frame is dependent on a previous one.
As it is not counted as a frame, bitrate increases but frame to time
conversions are maintained.
</parameter_description>
</parameter>
<parameter name="GST_BASE_PARSE_FRAME_FLAG_CLIP">
<parameter_description> @pre_push_frame can set this to indicate
that regular segment clipping can still be performed (as opposed to
any custom one having been done).
</parameter_description>
</parameter>
<parameter name="GST_BASE_PARSE_FRAME_FLAG_DROP">
<parameter_description> indicates to @finish_frame that the
the frame should be dropped (and might be handled internall by subclass)
</parameter_description>
</parameter>
<parameter name="GST_BASE_PARSE_FRAME_FLAG_QUEUE">
<parameter_description> indicates to @finish_frame that the
the frame should be queued for now and processed fully later
when the first non-queued frame is finished
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstBaseSrcFlags">
<description>
The #GstElement flags that a basesrc element may have.

</description>
<parameters>
<parameter name="GST_BASE_SRC_FLAG_STARTING">
<parameter_description> has source is starting
</parameter_description>
</parameter>
<parameter name="GST_BASE_SRC_FLAG_STARTED">
<parameter_description> has source been started
</parameter_description>
</parameter>
<parameter name="GST_BASE_SRC_FLAG_LAST">
<parameter_description> offset to define more flags
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstBin::do-latency">
<description>
Will be emitted when the bin needs to perform latency calculations. This
signal is only emited for toplevel bins or when async-handling is
enabled.

Only one signal handler is invoked. If no signals are connected, the
default handler is invoked, which will query and distribute the lowest
possible latency to all sinks.

Connect to this signal if the default latency calculations are not
sufficient, like when you need different latencies for different sinks in
the same pipeline.

</description>
<parameters>
<parameter name="bin">
<parameter_description> the #GstBin
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstBin::element-added">
<description>
Will be emitted after the element was added to the bin.

</description>
<parameters>
<parameter name="bin">
<parameter_description> the #GstBin
</parameter_description>
</parameter>
<parameter name="element">
<parameter_description> the #GstElement that was added to the bin
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstBin::element-removed">
<description>
Will be emitted after the element was removed from the bin.

</description>
<parameters>
<parameter name="bin">
<parameter_description> the #GstBin
</parameter_description>
</parameter>
<parameter name="element">
<parameter_description> the #GstElement that was removed from the bin
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstBinFlags">
<description>
GstBinFlags are a set of flags specific to bins. Most are set/used
internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ().

</description>
<parameters>
<parameter name="GST_BIN_FLAG_NO_RESYNC">
<parameter_description> don't resync a state change when elements are
added or linked in the bin.
</parameter_description>
</parameter>
<parameter name="GST_BIN_FLAG_LAST">
<parameter_description> the last enum in the series of flags for bins.
Derived classes can use this as first value in a list of flags.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstBufferCopyFlags">
<description>
A set of flags that can be provided to the gst_buffer_copy_into()
function to specify which items should be copied.

</description>
<parameters>
<parameter name="GST_BUFFER_COPY_NONE">
<parameter_description> copy nothing
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_COPY_FLAGS">
<parameter_description> flag indicating that buffer flags should be copied
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_COPY_TIMESTAMPS">
<parameter_description> flag indicating that buffer pts, dts,
duration, offset and offset_end should be copied
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_COPY_MEMORY">
<parameter_description> flag indicating that buffer memory should be reffed
and appended to already existing memory. Unless the memory is marked as
NO_SHARE, no actual copy of the memory is made but it is simply reffed.
Add @GST_BUFFER_COPY_DEEP to force a real copy.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_COPY_MERGE">
<parameter_description> flag indicating that buffer memory should be
merged
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_COPY_META">
<parameter_description> flag indicating that buffer meta should be
copied
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_COPY_DEEP">
<parameter_description> flag indicating that memory should always be
copied instead of reffed (Since 1.2)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstBufferFlags">
<description>
A set of buffer flags used to describe properties of a #GstBuffer.

</description>
<parameters>
<parameter name="GST_BUFFER_FLAG_LIVE">
<parameter_description>        the buffer is live data and should be discarded in
the PAUSED state.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_DECODE_ONLY">
<parameter_description> the buffer contains data that should be dropped
because it will be clipped against the segment
boundaries or because it does not contain data
that should be shown to the user.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_DISCONT">
<parameter_description>     the buffer marks a data discontinuity in the stream.
This typically occurs after a seek or a dropped buffer
from a live or network source.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_RESYNC">
<parameter_description>      the buffer timestamps might have a discontinuity
and this buffer is a good point to resynchronize.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_CORRUPTED">
<parameter_description>   the buffer data is corrupted.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_MARKER">
<parameter_description>      the buffer contains a media specific marker. for
video this is typically the end of a frame boundary, for audio
this is usually the start of a talkspurt.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_HEADER">
<parameter_description>      the buffer contains header information that is
needed to decode the following data.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_GAP">
<parameter_description>         the buffer has been created to fill a gap in the
stream and contains media neutral data (elements can
switch to optimized code path that ignores the buffer
content).
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_DROPPABLE">
<parameter_description>   the buffer can be dropped without breaking the
stream, for example to reduce bandwidth.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_DELTA_UNIT">
<parameter_description>  this unit cannot be decoded independently.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_FLAG_LAST">
<parameter_description>        additional media specific flags can be added starting from
this flag.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstBufferPoolAcquireFlags">
<description>
Additional flags to control the allocation of a buffer

</description>
<parameters>
<parameter name="GST_BUFFER_POOL_ACQUIRE_FLAG_NONE">
<parameter_description> no flags
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT">
<parameter_description> buffer is keyframe
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT">
<parameter_description> when the bufferpool is empty, acquire_buffer
will by default block until a buffer is released into the pool again. Setting
this flag makes acquire_buffer return #GST_FLOW_EOS instead of blocking.
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT">
<parameter_description> buffer is discont
</parameter_description>
</parameter>
<parameter name="GST_BUFFER_POOL_ACQUIRE_FLAG_LAST">
<parameter_description> last flag, subclasses can use private flags
starting from this value.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstBufferingMode">
<description>
The different types of buffering methods.

</description>
<parameters>
<parameter name="GST_BUFFERING_STREAM">
<parameter_description> a small amount of data is buffered
</parameter_description>
</parameter>
<parameter name="GST_BUFFERING_DOWNLOAD">
<parameter_description> the stream is being downloaded
</parameter_description>
</parameter>
<parameter name="GST_BUFFERING_TIMESHIFT">
<parameter_description> the stream is being downloaded in a audioringbuffer
</parameter_description>
</parameter>
<parameter name="GST_BUFFERING_LIVE">
<parameter_description> the stream is a live stream
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstBus::enable-async">
<description>
Enable async message delivery support for bus watches,
gst_bus_pop() and similar API. Without this only the
synchronous message handlers are called.

This property is used to create the child element buses
in #GstBin.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GstBus::message">
<description>
A message has been posted on the bus. This signal is emitted from a
GSource added to the mainloop. this signal will only be emitted when
there is a mainloop running.

</description>
<parameters>
<parameter name="bus">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the message that has been posted asynchronously
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstBus::sync-message">
<description>
A message has been posted on the bus. This signal is emitted from the
thread that posted the message so one has to be careful with locking.

This signal will not be emitted by default, you have to call
gst_bus_enable_sync_message_emission() before.

</description>
<parameters>
<parameter name="bus">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the message that has been posted synchronously
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstBusFlags">
<description>
The standard flags that a bus may have.

</description>
<parameters>
<parameter name="GST_BUS_FLUSHING">
<parameter_description> The bus is currently dropping all messages
</parameter_description>
</parameter>
<parameter name="GST_BUS_FLAG_LAST">
<parameter_description> offset to define more flags
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstBusSyncReply">
<description>
The result values for a GstBusSyncHandler.

</description>
<parameters>
<parameter name="GST_BUS_DROP">
<parameter_description> drop the message
</parameter_description>
</parameter>
<parameter name="GST_BUS_PASS">
<parameter_description> pass the message to the async queue
</parameter_description>
</parameter>
<parameter name="GST_BUS_ASYNC">
<parameter_description> pass message to async queue, continue if message is handled
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstCapsFlags">
<description>
Extra flags for a caps.

</description>
<parameters>
<parameter name="GST_CAPS_FLAG_ANY">
<parameter_description> Caps has no specific content, but can contain
anything.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstCapsIntersectMode">
<description>
Modes of caps intersection

@GST_CAPS_INTERSECT_ZIG_ZAG tries to preserve overall order of both caps
by iterating on the caps' structures as the following matrix shows:
|[
caps1
+-------------
| 1  2  4  7
caps2 | 3  5  8 10
| 6  9 11 12
]|
Used when there is no explicit precedence of one caps over the other. e.g.
tee's sink pad getcaps function, it will probe its src pad peers' for their
caps and intersect them with this mode.

@GST_CAPS_INTERSECT_FIRST is useful when an element wants to preserve
another element's caps priority order when intersecting with its own caps.
Example: If caps1 is [A, B, C] and caps2 is [E, B, D, A], the result
would be [A, B], maintaining the first caps priority on the intersection.

</description>
<parameters>
<parameter name="GST_CAPS_INTERSECT_ZIG_ZAG">
<parameter_description> Zig-zags over both caps.
</parameter_description>
</parameter>
<parameter name="GST_CAPS_INTERSECT_FIRST">
<parameter_description> Keeps the first caps order.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstChildProxy::child-added">
<description>
Will be emitted after the @object was added to the @child_proxy.

</description>
<parameters>
<parameter name="child_proxy">
<parameter_description> the #GstChildProxy
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the #GObject that was added
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the new child
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstChildProxy::child-removed">
<description>
Will be emitted after the @object was removed from the @child_proxy.

</description>
<parameters>
<parameter name="child_proxy">
<parameter_description> the #GstChildProxy
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the #GObject that was removed
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the old child
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstClockEntryType">
<description>
The type of the clock entry

</description>
<parameters>
<parameter name="GST_CLOCK_ENTRY_SINGLE">
<parameter_description> a single shot timeout
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_ENTRY_PERIODIC">
<parameter_description> a periodic timeout request
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstClockFlags">
<description>
The capabilities of this clock

</description>
<parameters>
<parameter name="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC">
<parameter_description> clock can do a single sync timeout request
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC">
<parameter_description> clock can do a single async timeout request
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC">
<parameter_description> clock can do sync periodic timeout requests
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC">
<parameter_description> clock can do async periodic timeout callbacks
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_FLAG_CAN_SET_RESOLUTION">
<parameter_description> clock's resolution can be changed
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_FLAG_CAN_SET_MASTER">
<parameter_description> clock can be slaved to a master clock
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_FLAG_LAST">
<parameter_description> subclasses can add additional flags starting from this flag
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstClockReturn">
<description>
The return value of a clock operation.

</description>
<parameters>
<parameter name="GST_CLOCK_OK">
<parameter_description> The operation succeeded.
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_EARLY">
<parameter_description> The operation was scheduled too late.
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_UNSCHEDULED">
<parameter_description> The clockID was unscheduled
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_BUSY">
<parameter_description> The ClockID is busy
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_BADTIME">
<parameter_description> A bad time was provided to a function.
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_ERROR">
<parameter_description> An error occurred
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_UNSUPPORTED">
<parameter_description> Operation is not supported
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_DONE">
<parameter_description> The ClockID is done waiting
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstClockType">
<description>
The different kind of clocks.

</description>
<parameters>
<parameter name="GST_CLOCK_TYPE_REALTIME">
<parameter_description> time since Epoch
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_TYPE_MONOTONIC">
<parameter_description> monotonic time since some unspecified starting
point
</parameter_description>
</parameter>
<parameter name="GST_CLOCK_TYPE_OTHER">
<parameter_description> some other time source is used (Since: 1.0.5)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstCollectPadsStateFlags">
<description>

</description>
<parameters>
<parameter name="GST_COLLECT_PADS_STATE_EOS">
<parameter_description>         Set if collectdata's pad is EOS.
</parameter_description>
</parameter>
<parameter name="GST_COLLECT_PADS_STATE_FLUSHING">
<parameter_description>    Set if collectdata's pad is flushing.
</parameter_description>
</parameter>
<parameter name="GST_COLLECT_PADS_STATE_NEW_SEGMENT">
<parameter_description> Set if collectdata's pad received a
new_segment event.
</parameter_description>
</parameter>
<parameter name="GST_COLLECT_PADS_STATE_WAITING">
<parameter_description>     Set if collectdata's pad must be waited
for when collecting.
</parameter_description>
</parameter>
<parameter name="GST_COLLECT_PADS_STATE_LOCKED">
<parameter_description>      Set collectdata's pad WAITING state must
not be changed.
#GstCollectPadsStateFlags indicate private state of a collectdata('s pad).
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstColorBalance::value-changed">
<description>
Fired when the value of the indicated channel has changed.

</description>
<parameters>
<parameter name="colorbalance">
<parameter_description> The GstColorBalance instance
</parameter_description>
</parameter>
<parameter name="channel">
<parameter_description> The #GstColorBalanceChannel
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> The new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstColorBalanceChannel::value-changed">
<description>
Fired when the value of the indicated channel has changed.

</description>
<parameters>
<parameter name="channel">
<parameter_description> The #GstColorBalanceChannel
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> The new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstColorBalanceType">
<description>
An enumeration indicating whether an element implements color balancing
operations in software or in dedicated hardware. In general, dedicated
hardware implementations (such as those provided by xvimagesink) are
preferred.

</description>
<parameters>
<parameter name="GST_COLOR_BALANCE_HARDWARE">
<parameter_description> Color balance is implemented with dedicated
hardware.
</parameter_description>
</parameter>
<parameter name="GST_COLOR_BALANCE_SOFTWARE">
<parameter_description> Color balance is implemented via software
processing.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstCoreError">
<description>
Core errors are errors inside the core GStreamer library.

</description>
<parameters>
<parameter name="GST_CORE_ERROR_FAILED">
<parameter_description> a general error which doesn't fit in any other
category.  Make sure you add a custom message to the error call.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_TOO_LAZY">
<parameter_description> do not use this except as a placeholder for
deciding where to go while developing code.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_NOT_IMPLEMENTED">
<parameter_description> use this when you do not want to implement
this functionality yet.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_STATE_CHANGE">
<parameter_description> used for state change errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_PAD">
<parameter_description> used for pad-related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_THREAD">
<parameter_description> used for thread-related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_NEGOTIATION">
<parameter_description> used for negotiation-related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_EVENT">
<parameter_description> used for event-related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_SEEK">
<parameter_description> used for seek-related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_CAPS">
<parameter_description> used for caps-related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_TAG">
<parameter_description> used for negotiation-related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_MISSING_PLUGIN">
<parameter_description> used if a plugin is missing.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_CLOCK">
<parameter_description> used for clock related errors.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_DISABLED">
<parameter_description> used if functionality has been disabled at
compile time.
</parameter_description>
</parameter>
<parameter name="GST_CORE_ERROR_NUM_ERRORS">
<parameter_description> the number of core error types.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstDataQueue::empty">
<description>
Reports that the queue became empty (empty).
A queue is empty if the total amount of visible items inside it (num-visible, time,
size) is lower than the boundary values which can be set through the GObject
properties.

</description>
<parameters>
<parameter name="queue">
<parameter_description> the queue instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstDataQueue::full">
<description>
Reports that the queue became full (full).
A queue is full if the total amount of data inside it (num-visible, time,
size) is higher than the boundary values which can be set through the GObject
properties.

</description>
<parameters>
<parameter name="queue">
<parameter_description> the queue instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstDebugColorFlags">
<description>
These are some terminal style flags you can use when creating your
debugging categories to make them stand out in debugging output.

</description>
<parameters>
<parameter name="GST_DEBUG_FG_BLACK">
<parameter_description> Use black as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_FG_RED">
<parameter_description> Use red as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_FG_GREEN">
<parameter_description> Use green as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_FG_YELLOW">
<parameter_description> Use yellow as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_FG_BLUE">
<parameter_description> Use blue as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_FG_MAGENTA">
<parameter_description> Use magenta as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_FG_CYAN">
<parameter_description> Use cyan as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_FG_WHITE">
<parameter_description> Use white as foreground color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_BLACK">
<parameter_description> Use black as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_RED">
<parameter_description> Use red as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_GREEN">
<parameter_description> Use green as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_YELLOW">
<parameter_description> Use yellow as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_BLUE">
<parameter_description> Use blue as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_MAGENTA">
<parameter_description> Use magenta as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_CYAN">
<parameter_description> Use cyan as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BG_WHITE">
<parameter_description> Use white as background color.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_BOLD">
<parameter_description> Make the output bold.
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_UNDERLINE">
<parameter_description> Underline the output.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstDebugGraphDetails">
<description>
Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().

</description>
<parameters>
<parameter name="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE">
<parameter_description> show caps-name on edges
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS">
<parameter_description> show caps-details on edges
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS">
<parameter_description> show modified parameters on elements
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_GRAPH_SHOW_STATES">
<parameter_description> show element states
</parameter_description>
</parameter>
<parameter name="GST_DEBUG_GRAPH_SHOW_ALL">
<parameter_description> show all details
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstDebugLevel">
<description>
The level defines the importance of a debugging message. The more important a
message is, the greater the probability that the debugging system outputs it.

</description>
<parameters>
<parameter name="GST_LEVEL_NONE">
<parameter_description> No debugging level specified or desired. Used to deactivate
debugging output.
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_ERROR">
<parameter_description> Error messages are to be used only when an error occured
that stops the application from keeping working correctly.
An examples is gst_element_error, which outputs a message with this priority.
It does not mean that the application is terminating as with g_errror.
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_WARNING">
<parameter_description> Warning messages are to inform about abnormal behaviour
that could lead to problems or weird behaviour later on. An example of this
would be clocking issues (&quot;your computer is pretty slow&quot;) or broken input
data (&quot;Can't synchronize to stream.&quot;)
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_FIXME">
<parameter_description> Fixme messages are messages that indicate that something
in the executed code path is not fully implemented or handled yet. Note
that this does not replace proper error handling in any way, the purpose
of this message is to make it easier to spot incomplete/unfinished pieces
of code when reading the debug log.
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_INFO">
<parameter_description> Informational messages should be used to keep the developer
updated about what is happening.
Examples where this should be used are when a typefind function has
successfully determined the type of the stream or when an mp3 plugin detects
the format to be used. (&quot;This file has mono sound.&quot;)
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_DEBUG">
<parameter_description> Debugging messages should be used when something common
happens that is not the expected default behavior, or something that's
useful to know but doesn't happen all the time (ie. per loop iteration or
buffer processed or event handled).
An example would be notifications about state changes or receiving/sending
of events.
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_LOG">
<parameter_description> Log messages are messages that are very common but might be
useful to know. As a rule of thumb a pipeline that is iterating as expected
should never output anything else but LOG messages. Use this log level to
log recurring information in chain functions and loop functions, for
example.
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_TRACE">
<parameter_description> Tracing-related messages.
Examples for this are referencing/dereferencing of objects.
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_MEMDUMP">
<parameter_description> memory dump messages are used to log (small) chunks of
data as memory dumps in the log. They will be displayed as hexdump with
ASCII characters.
</parameter_description>
</parameter>
<parameter name="GST_LEVEL_COUNT">
<parameter_description> The number of defined debugging levels.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstDiscoverer::discovered">
<description>
Will be emitted when all information on a URI could be discovered, or
an error ocurred.

When an error occurs, @info might still contain some partial information,
depending on the circumstances of the error.

</description>
<parameters>
<parameter name="discoverer">
<parameter_description> the #GstDiscoverer
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> the results #GstDiscovererInfo
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> #GError, which will be non-NULL if an error
occurred during discovery. You must not
free this #GError, it will be freed by
the discoverer.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstDiscoverer::finished">
<description>
Will be emitted when all pending URIs have been processed.

</description>
<parameters>
<parameter name="discoverer">
<parameter_description> the #GstDiscoverer
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstDiscoverer::source-setup">
<description>
This signal is emitted after the source element has been created for, so
the URI being discovered, so it can be configured by setting additional
properties (e.g. set a proxy server for an http source, or set the device
and read speed for an audio cd source).

This signal is usually emitted from the context of a GStreamer streaming
thread.

</description>
<parameters>
<parameter name="discoverer">
<parameter_description> the #GstDiscoverer
</parameter_description>
</parameter>
<parameter name="source">
<parameter_description> source element
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstDiscoverer::starting">
<description>
Will be emitted when the discover starts analyzing the pending URIs

</description>
<parameters>
<parameter name="discoverer">
<parameter_description> the #GstDiscoverer
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstDiscovererResult">
<description>
Result values for the discovery process.

</description>
<parameters>
<parameter name="GST_DISCOVERER_OK">
<parameter_description> The discovery was successful
</parameter_description>
</parameter>
<parameter name="GST_DISCOVERER_URI_INVALID">
<parameter_description> the URI is invalid
</parameter_description>
</parameter>
<parameter name="GST_DISCOVERER_ERROR">
<parameter_description> an error happened and the GError is set
</parameter_description>
</parameter>
<parameter name="GST_DISCOVERER_TIMEOUT">
<parameter_description> the discovery timed-out
</parameter_description>
</parameter>
<parameter name="GST_DISCOVERER_BUSY">
<parameter_description> the discoverer was already discovering a file
</parameter_description>
</parameter>
<parameter name="GST_DISCOVERER_MISSING_PLUGINS">
<parameter_description> Some plugins are missing for full discovery
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstElement::no-more-pads">
<description>
This signals that the element will not generate more dynamic pads.
Note that this signal will usually be emitted from the context of
the streaming thread.

</description>
<parameters>
<parameter name="gstelement">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstElement::pad-added">
<description>
a new #GstPad has been added to the element. Note that this signal will
usually be emitted from the context of the streaming thread. Also keep in
mind that if you add new elements to the pipeline in the signal handler
you will need to set them to the desired target state with
gst_element_set_state() or gst_element_sync_state_with_parent().

</description>
<parameters>
<parameter name="gstelement">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="new_pad">
<parameter_description> the pad that has been added
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstElement::pad-removed">
<description>
a #GstPad has been removed from the element

</description>
<parameters>
<parameter name="gstelement">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="old_pad">
<parameter_description> the pad that has been removed
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstElementFlags">
<description>
The standard flags that an element may have.

</description>
<parameters>
<parameter name="GST_ELEMENT_FLAG_LOCKED_STATE">
<parameter_description> ignore state changes from parent
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FLAG_SINK">
<parameter_description> the element is a sink
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FLAG_SOURCE">
<parameter_description> the element is a source.
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FLAG_PROVIDE_CLOCK">
<parameter_description> the element can provide a clock
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FLAG_REQUIRE_CLOCK">
<parameter_description> the element requires a clock
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FLAG_INDEXABLE">
<parameter_description> the element can use an index
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FLAG_LAST">
<parameter_description> offset to define more flags
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstEventType">
<description>
#GstEventType lists the standard event types that can be sent in a pipeline.

The custom event types can be used for private messages between elements
that can't be expressed using normal
GStreamer buffer passing semantics. Custom events carry an arbitrary
#GstStructure.
Specific custom events are distinguished by the name of the structure.

</description>
<parameters>
<parameter name="GST_EVENT_UNKNOWN">
<parameter_description> unknown event.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_FLUSH_START">
<parameter_description> Start a flush operation. This event clears all data
from the pipeline and unblock all streaming threads.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_FLUSH_STOP">
<parameter_description> Stop a flush operation. This event resets the
running-time of the pipeline.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_STREAM_START">
<parameter_description> Event to mark the start of a new stream. Sent before any
other serialized event and only sent at the start of a new stream,
not after flushing seeks.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CAPS">
<parameter_description> #GstCaps event. Notify the pad of a new media type.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_SEGMENT">
<parameter_description> A new media segment follows in the dataflow. The
segment events contains information for clipping buffers and
converting buffer timestamps to running-time and
stream-time.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_TAG">
<parameter_description> A new set of metadata tags has been found in the stream.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_BUFFERSIZE">
<parameter_description> Notification of buffering requirements. Currently not
used yet.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_SINK_MESSAGE">
<parameter_description> An event that sinks turn into a message. Used to
send messages that should be emitted in sync with
rendering.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_EOS">
<parameter_description> End-Of-Stream. No more data is to be expected to follow
without a SEGMENT event.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_SEGMENT_DONE">
<parameter_description> Marks the end of a segment playback.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_GAP">
<parameter_description> Marks a gap in the datastream.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_TOC">
<parameter_description> An event which indicates that a new table of contents (TOC)
was found or updated.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CONTEXT">
<parameter_description> An event to communicate a #GstContext to other
elements (Since 1.2)
</parameter_description>
</parameter>
<parameter name="GST_EVENT_QOS">
<parameter_description> A quality message. Used to indicate to upstream elements
that the downstream elements should adjust their processing
rate.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_SEEK">
<parameter_description> A request for a new playback position and rate.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_NAVIGATION">
<parameter_description> Navigation events are usually used for communicating
user requests, such as mouse or keyboard movements,
to upstream elements.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_LATENCY">
<parameter_description> Notification of new latency adjustment. Sinks will use
the latency information to adjust their synchronisation.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_STEP">
<parameter_description> A request for stepping through the media. Sinks will usually
execute the step operation.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_RECONFIGURE">
<parameter_description> A request for upstream renegotiating caps and reconfiguring.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_TOC_SELECT">
<parameter_description> A request for a new playback position based on TOC
entry's UID.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CUSTOM_UPSTREAM">
<parameter_description> Upstream custom event
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CUSTOM_DOWNSTREAM">
<parameter_description> Downstream custom event that travels in the
data flow.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CUSTOM_DOWNSTREAM_OOB">
<parameter_description> Custom out-of-band downstream event.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CUSTOM_DOWNSTREAM_STICKY">
<parameter_description> Custom sticky downstream event.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CUSTOM_BOTH">
<parameter_description> Custom upstream or downstream event.
In-band when travelling downstream.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_CUSTOM_BOTH_OOB">
<parameter_description> Custom upstream or downstream out-of-band event.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstEventTypeFlags">
<description>
#GstEventTypeFlags indicate the aspects of the different #GstEventType
values. You can get the type flags of a #GstEventType with the
gst_event_type_get_flags() function.

</description>
<parameters>
<parameter name="GST_EVENT_TYPE_UPSTREAM">
<parameter_description>     Set if the event can travel upstream.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_TYPE_DOWNSTREAM">
<parameter_description>   Set if the event can travel downstream.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_TYPE_SERIALIZED">
<parameter_description>   Set if the event should be serialized with data
flow.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_TYPE_STICKY">
<parameter_description>       Set if the event is sticky on the pads.
</parameter_description>
</parameter>
<parameter name="GST_EVENT_TYPE_STICKY_MULTI">
<parameter_description> Multiple sticky events can be on a pad, each
identified by the event name.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstFFTWindow">
<description>
The various window functions available.

</description>
<parameters>
<parameter name="GST_FFT_WINDOW_RECTANGULAR">
<parameter_description> Rectangular window
</parameter_description>
</parameter>
<parameter name="GST_FFT_WINDOW_HAMMING">
<parameter_description> Hamming window
</parameter_description>
</parameter>
<parameter name="GST_FFT_WINDOW_HANN">
<parameter_description> Hann (sometimes also called Hanning) window
</parameter_description>
</parameter>
<parameter name="GST_FFT_WINDOW_BARTLETT">
<parameter_description> Bartlett window
</parameter_description>
</parameter>
<parameter name="GST_FFT_WINDOW_BLACKMAN">
<parameter_description> Blackman window
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstFactoryListType">
<description>
The type of #GstElementFactory to filter.

All @GstFactoryListType up to @GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS are exclusive.

If one or more of the MEDIA types are specified, then only elements
matching the specified media types will be selected.

</description>
<parameters>
<parameter name="GST_ELEMENT_FACTORY_TYPE_DECODER">
<parameter_description> Decoder elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_ENCODER">
<parameter_description> Encoder elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_SINK">
<parameter_description> Sink elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_SRC">
<parameter_description> Source elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_MUXER">
<parameter_description> Muxer elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_DEMUXER">
<parameter_description> Demuxer elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_PARSER">
<parameter_description> Parser elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_PAYLOADER">
<parameter_description> Payloader elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER">
<parameter_description> Depayloader elements
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS">
<parameter_description> Private, do not use
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO">
<parameter_description> Elements handling video media types
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO">
<parameter_description> Elements handling audio media types
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE">
<parameter_description> Elements handling image media types
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE">
<parameter_description> Elements handling subtitle media types
</parameter_description>
</parameter>
<parameter name="GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA">
<parameter_description> Elements handling metadata media types
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstFlowReturn">
<description>
The result of passing data to a pad.

Note that the custom return values should not be exposed outside of the
element scope.

</description>
<parameters>
<parameter name="GST_FLOW_OK">
<parameter_description>		 Data passing was ok.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_NOT_LINKED">
<parameter_description>	 Pad is not linked.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_FLUSHING">
<parameter_description>	         Pad is flushing.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_EOS">
<parameter_description>                Pad is EOS.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_NOT_NEGOTIATED">
<parameter_description>	 Pad is not negotiated.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_ERROR">
<parameter_description>		 Some (fatal) error occured. Element generating
this error should post an error message with more
details.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_NOT_SUPPORTED">
<parameter_description>	 This operation is not supported.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_CUSTOM_SUCCESS">
<parameter_description>	 Elements can use values starting from
this (and higher) to define custom success
codes.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_CUSTOM_SUCCESS_1">
<parameter_description>	 Pre-defined custom success code (define your
custom success code to this to avoid compiler
warnings).
</parameter_description>
</parameter>
<parameter name="GST_FLOW_CUSTOM_SUCCESS_2">
<parameter_description>	 Pre-defined custom success code.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_CUSTOM_ERROR">
<parameter_description>	 Elements can use values starting from
this (and lower) to define custom error codes.
</parameter_description>
</parameter>
<parameter name="GST_FLOW_CUSTOM_ERROR_1">
<parameter_description>	 Pre-defined custom error code (define your
custom error code to this to avoid compiler
warnings).
</parameter_description>
</parameter>
<parameter name="GST_FLOW_CUSTOM_ERROR_2">
<parameter_description>	 Pre-defined custom error code.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstFormat">
<description>
Standard predefined formats

</description>
<parameters>
<parameter name="GST_FORMAT_UNDEFINED">
<parameter_description> undefined format
</parameter_description>
</parameter>
<parameter name="GST_FORMAT_DEFAULT">
<parameter_description> the default format of the pad/element. This can be
samples for raw audio, frames/fields for raw video (some, but not all,
elements support this; use @GST_FORMAT_TIME if you don't have a good
reason to query for samples/frames)
</parameter_description>
</parameter>
<parameter name="GST_FORMAT_BYTES">
<parameter_description> bytes
</parameter_description>
</parameter>
<parameter name="GST_FORMAT_TIME">
<parameter_description> time in nanoseconds
</parameter_description>
</parameter>
<parameter name="GST_FORMAT_BUFFERS">
<parameter_description> buffers (few, if any, elements implement this as of
May 2009)
</parameter_description>
</parameter>
<parameter name="GST_FORMAT_PERCENT">
<parameter_description> percentage of stream (few, if any, elements implement
this as of May 2009)
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstIndex::entry-added">
<description>
Is emitted when a new entry is added to the index.

</description>
<parameters>
<parameter name="gstindex">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="arg1">
<parameter_description> The entry added to the index.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstIndexAssociationFlags">
<description>
Flags for an association entry.

</description>
<parameters>
<parameter name="GST_INDEX_ASSOCIATION_FLAG_NONE">
<parameter_description> no extra flags
</parameter_description>
</parameter>
<parameter name="GST_INDEX_ASSOCIATION_FLAG_KEY_UNIT">
<parameter_description> the entry marks a key unit, a key unit is one
that marks a place where one can randomly seek to.
</parameter_description>
</parameter>
<parameter name="GST_INDEX_ASSOCIATION_FLAG_DELTA_UNIT">
<parameter_description> the entry marks a delta unit, a delta unit
is one that marks a place where one can relatively seek to.
</parameter_description>
</parameter>
<parameter name="GST_INDEX_ASSOCIATION_FLAG_LAST">
<parameter_description> extra user defined flags should start here.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstIndexCertainty">
<description>
The certainty of a group in the index.

</description>
<parameters>
<parameter name="GST_INDEX_UNKNOWN">
<parameter_description> accuracy is not known
</parameter_description>
</parameter>
<parameter name="GST_INDEX_CERTAIN">
<parameter_description> accuracy is perfect
</parameter_description>
</parameter>
<parameter name="GST_INDEX_FUZZY">
<parameter_description> accuracy is fuzzy
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstIndexEntryType">
<description>
The different types of entries in the index.

</description>
<parameters>
<parameter name="GST_INDEX_ENTRY_ID">
<parameter_description> This entry is an id that maps an index id to its owner object
</parameter_description>
</parameter>
<parameter name="GST_INDEX_ENTRY_ASSOCIATION">
<parameter_description> This entry is an association between formats
</parameter_description>
</parameter>
<parameter name="GST_INDEX_ENTRY_OBJECT">
<parameter_description> An object
</parameter_description>
</parameter>
<parameter name="GST_INDEX_ENTRY_FORMAT">
<parameter_description> A format definition
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstIndexFlags">
<description>
Flags for this index

</description>
<parameters>
<parameter name="GST_INDEX_WRITABLE">
<parameter_description> The index is writable
</parameter_description>
</parameter>
<parameter name="GST_INDEX_READABLE">
<parameter_description> The index is readable
</parameter_description>
</parameter>
<parameter name="GST_INDEX_FLAG_LAST">
<parameter_description> First flag that can be used by subclasses
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstIndexLookupMethod">
<description>
Specify the method to find an index entry in the index.

</description>
<parameters>
<parameter name="GST_INDEX_LOOKUP_EXACT">
<parameter_description> There has to be an exact indexentry with the given format/value
</parameter_description>
</parameter>
<parameter name="GST_INDEX_LOOKUP_BEFORE">
<parameter_description> The exact entry or the one before it
</parameter_description>
</parameter>
<parameter name="GST_INDEX_LOOKUP_AFTER">
<parameter_description> The exact entry or the one after it
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstIndexResolverMethod">
<description>
The method used to resolve index writers

</description>
<parameters>
<parameter name="GST_INDEX_RESOLVER_CUSTOM">
<parameter_description> Use a custom resolver
</parameter_description>
</parameter>
<parameter name="GST_INDEX_RESOLVER_GTYPE">
<parameter_description> Resolve based on the GType of the object
</parameter_description>
</parameter>
<parameter name="GST_INDEX_RESOLVER_PATH">
<parameter_description> Resolve on the path in graph
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstInstallPluginsReturn">
<description>
Result codes returned by gst_install_plugins_async() and
gst_install_plugins_sync(), and also the result code passed to the
#GstInstallPluginsResultFunc specified with gst_install_plugins_async().

These codes indicate success or failure of starting an external installer
program and to what extent the requested plugins could be installed.

</description>
<parameters>
<parameter name="GST_INSTALL_PLUGINS_SUCCESS">
<parameter_description> all of the requested plugins could be
installed
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_NOT_FOUND">
<parameter_description> no appropriate installation candidate for
any of the requested plugins could be found. Only return this if nothing
has been installed. Return #GST_INSTALL_PLUGINS_PARTIAL_SUCCESS if
some (but not all) of the requested plugins could be installed.
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_ERROR">
<parameter_description> an error occured during the installation. If
this happens, the  user has already seen an error message and another
one should not be displayed
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_CRASHED">
<parameter_description> the installer had an unclean exit code
(ie. death by signal)
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_PARTIAL_SUCCESS">
<parameter_description> some of the requested plugins could
be installed, but not all
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_USER_ABORT">
<parameter_description> the user has aborted the installation
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_INVALID">
<parameter_description> the helper returned an invalid status code
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_STARTED_OK">
<parameter_description> returned by gst_install_plugins_async() to
indicate that everything went fine so far and the provided callback
will be called with the result of the installation later
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_INTERNAL_FAILURE">
<parameter_description> some internal failure has
occured when trying to start the installer
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_HELPER_MISSING">
<parameter_description> the helper script to call the
actual installer is not installed
</parameter_description>
</parameter>
<parameter name="GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS">
<parameter_description> a previously-started plugin
installation is still in progress, try again later
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstInterpolationMode">
<description>
The various interpolation modes available.

</description>
<parameters>
<parameter name="GST_INTERPOLATION_MODE_NONE">
<parameter_description> steps-like interpolation, default
</parameter_description>
</parameter>
<parameter name="GST_INTERPOLATION_MODE_LINEAR">
<parameter_description> linear interpolation
</parameter_description>
</parameter>
<parameter name="GST_INTERPOLATION_MODE_CUBIC">
<parameter_description> cubic interpolation
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstIteratorItem">
<description>
The result of a #GstIteratorItemFunction.

</description>
<parameters>
<parameter name="GST_ITERATOR_ITEM_SKIP">
<parameter_description>  Skip this item
</parameter_description>
</parameter>
<parameter name="GST_ITERATOR_ITEM_PASS">
<parameter_description>  Return item
</parameter_description>
</parameter>
<parameter name="GST_ITERATOR_ITEM_END">
<parameter_description>   Stop after this item.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstIteratorResult">
<description>
The result of gst_iterator_next().

</description>
<parameters>
<parameter name="GST_ITERATOR_DONE">
<parameter_description>   No more items in the iterator
</parameter_description>
</parameter>
<parameter name="GST_ITERATOR_OK">
<parameter_description>     An item was retrieved
</parameter_description>
</parameter>
<parameter name="GST_ITERATOR_RESYNC">
<parameter_description> Datastructure changed while iterating
</parameter_description>
</parameter>
<parameter name="GST_ITERATOR_ERROR">
<parameter_description>  An error happened
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstLFOWaveform">
<description>
The various waveform modes available.

</description>
<parameters>
<parameter name="GST_LFO_WAVEFORM_SINE">
<parameter_description> sine waveform
</parameter_description>
</parameter>
<parameter name="GST_LFO_WAVEFORM_SQUARE">
<parameter_description> square waveform
</parameter_description>
</parameter>
<parameter name="GST_LFO_WAVEFORM_SAW">
<parameter_description> saw waveform
</parameter_description>
</parameter>
<parameter name="GST_LFO_WAVEFORM_REVERSE_SAW">
<parameter_description> reverse saw waveform
</parameter_description>
</parameter>
<parameter name="GST_LFO_WAVEFORM_TRIANGLE">
<parameter_description> triangle waveform
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstLibraryError">
<description>
Library errors are for errors from the library being used by elements
(initializing, finalizing, settings, ...)

</description>
<parameters>
<parameter name="GST_LIBRARY_ERROR_FAILED">
<parameter_description> a general error which doesn't fit in any other
category.  Make sure you add a custom message to the error call.
</parameter_description>
</parameter>
<parameter name="GST_LIBRARY_ERROR_TOO_LAZY">
<parameter_description> do not use this except as a placeholder for
deciding where to go while developing code.
</parameter_description>
</parameter>
<parameter name="GST_LIBRARY_ERROR_INIT">
<parameter_description> used when the library could not be opened.
</parameter_description>
</parameter>
<parameter name="GST_LIBRARY_ERROR_SHUTDOWN">
<parameter_description> used when the library could not be closed.
</parameter_description>
</parameter>
<parameter name="GST_LIBRARY_ERROR_SETTINGS">
<parameter_description> used when the library doesn't accept settings.
</parameter_description>
</parameter>
<parameter name="GST_LIBRARY_ERROR_ENCODE">
<parameter_description> used when the library generated an encoding error.
</parameter_description>
</parameter>
<parameter name="GST_LIBRARY_ERROR_NUM_ERRORS">
<parameter_description> the number of library error types.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstLockFlags">
<description>
Flags used when locking miniobjects

</description>
<parameters>
<parameter name="GST_LOCK_FLAG_READ">
<parameter_description> lock for read access
</parameter_description>
</parameter>
<parameter name="GST_LOCK_FLAG_WRITE">
<parameter_description> lock for write access
</parameter_description>
</parameter>
<parameter name="GST_LOCK_FLAG_EXCLUSIVE">
<parameter_description> lock for exclusive access
</parameter_description>
</parameter>
<parameter name="GST_LOCK_FLAG_LAST">
<parameter_description> first flag that can be used for custom purposes
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstMapFlags">
<description>
Flags used when mapping memory

</description>
<parameters>
<parameter name="GST_MAP_READ">
<parameter_description> map for read access
</parameter_description>
</parameter>
<parameter name="GST_MAP_WRITE">
<parameter_description> map for write access
</parameter_description>
</parameter>
<parameter name="GST_MAP_FLAG_LAST">
<parameter_description> first flag that can be used for custom purposes
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstMemoryFlags">
<description>
Flags for wrapped memory.

</description>
<parameters>
<parameter name="GST_MEMORY_FLAG_READONLY">
<parameter_description> memory is readonly. It is not allowed to map the
memory with #GST_MAP_WRITE.
</parameter_description>
</parameter>
<parameter name="GST_MEMORY_FLAG_NO_SHARE">
<parameter_description> memory must not be shared. Copies will have to be
made when this memory needs to be shared between buffers.
</parameter_description>
</parameter>
<parameter name="GST_MEMORY_FLAG_ZERO_PREFIXED">
<parameter_description> the memory prefix is filled with 0 bytes
</parameter_description>
</parameter>
<parameter name="GST_MEMORY_FLAG_ZERO_PADDED">
<parameter_description> the memory padding is filled with 0 bytes
</parameter_description>
</parameter>
<parameter name="GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS">
<parameter_description> the memory is physically contiguous. Since 1.2
</parameter_description>
</parameter>
<parameter name="GST_MEMORY_FLAG_NOT_MAPPABLE">
<parameter_description> the memory can't be mapped via gst_memory_map() without any preconditions. Since 1.2
</parameter_description>
</parameter>
<parameter name="GST_MEMORY_FLAG_LAST">
<parameter_description> first flag that can be used for custom purposes
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstMessageType">
<description>
The different message types that are available.

</description>
<parameters>
<parameter name="GST_MESSAGE_UNKNOWN">
<parameter_description> an undefined message
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_EOS">
<parameter_description> end-of-stream reached in a pipeline. The application will
only receive this message in the PLAYING state and every time it sets a
pipeline to PLAYING that is in the EOS state. The application can perform a
flushing seek in the pipeline, which will undo the EOS state again.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_ERROR">
<parameter_description> an error occured. When the application receives an error
message it should stop playback of the pipeline and not assume that more
data will be played.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_WARNING">
<parameter_description> a warning occured.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_INFO">
<parameter_description> an info message occured
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_TAG">
<parameter_description> a tag was found.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_BUFFERING">
<parameter_description> the pipeline is buffering. When the application
receives a buffering message in the PLAYING state for a non-live pipeline it
must PAUSE the pipeline until the buffering completes, when the percentage
field in the message is 100%. For live pipelines, no action must be
performed and the buffering percentage can be used to inform the user about
the progress.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_STATE_CHANGED">
<parameter_description> a state change happened
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_STATE_DIRTY">
<parameter_description> an element changed state in a streaming thread.
This message is deprecated.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_STEP_DONE">
<parameter_description> a stepping operation finished.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_CLOCK_PROVIDE">
<parameter_description> an element notifies its capability of providing
a clock. This message is used internally and
never forwarded to the application.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_CLOCK_LOST">
<parameter_description> The current clock as selected by the pipeline became
unusable. The pipeline will select a new clock on
the next PLAYING state change. The application
should set the pipeline to PAUSED and back to
PLAYING when this message is received.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_NEW_CLOCK">
<parameter_description> a new clock was selected in the pipeline.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_STRUCTURE_CHANGE">
<parameter_description> the structure of the pipeline changed. This
message is used internally and never forwarded to the application.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_STREAM_STATUS">
<parameter_description> status about a stream, emitted when it starts,
stops, errors, etc..
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_APPLICATION">
<parameter_description> message posted by the application, possibly
via an application-specific element.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_ELEMENT">
<parameter_description> element-specific message, see the specific element's
documentation
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_SEGMENT_START">
<parameter_description> pipeline started playback of a segment. This
message is used internally and never forwarded to the application.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_SEGMENT_DONE">
<parameter_description> pipeline completed playback of a segment. This
message is forwarded to the application after all elements that posted
@GST_MESSAGE_SEGMENT_START posted a GST_MESSAGE_SEGMENT_DONE message.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_DURATION_CHANGED">
<parameter_description> The duration of a pipeline changed. The
application can get the new duration with a duration query.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_ASYNC_START">
<parameter_description> Posted by elements when they start an ASYNC
#GstStateChange. This message is not forwarded to the application but is used
internally.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_ASYNC_DONE">
<parameter_description> Posted by elements when they complete an ASYNC
#GstStateChange. The application will only receive this message from the toplevel
pipeline.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_LATENCY">
<parameter_description> Posted by elements when their latency changes. The
application should recalculate and distribute a new latency.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_REQUEST_STATE">
<parameter_description> Posted by elements when they want the pipeline to
change state. This message is a suggestion to the application which can
decide to perform the state change on (part of) the pipeline.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_STEP_START">
<parameter_description> A stepping operation was started.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_QOS">
<parameter_description> A buffer was dropped or an element changed its processing
strategy for Quality of Service reasons.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_PROGRESS">
<parameter_description> A progress message.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_TOC">
<parameter_description> A new table of contents (TOC) was found or previously found TOC
was updated.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_RESET_TIME">
<parameter_description> Message to request resetting the pipeline's
running time from the pipeline. This is an internal message which
applications will likely never receive.
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_STREAM_START">
<parameter_description> Message indicating start of a new stream. Useful
e.g. when using playbin in gapless playback mode, to get notified when
the next title actually starts playing (which will be some time after
the URI for the next title has been set).
</parameter_description>
</parameter>
<parameter name="GST_MESSAGE_ANY">
<parameter_description> mask for all of the above messages.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstMetaFlags">
<description>
Extra metadata flags.

</description>
<parameters>
<parameter name="GST_META_FLAG_NONE">
<parameter_description> no flags
</parameter_description>
</parameter>
<parameter name="GST_META_FLAG_READONLY">
<parameter_description> metadata should not be modified
</parameter_description>
</parameter>
<parameter name="GST_META_FLAG_POOLED">
<parameter_description> metadata is managed by a bufferpool
</parameter_description>
</parameter>
<parameter name="GST_META_FLAG_LOCKED">
<parameter_description> metadata should not be removed
</parameter_description>
</parameter>
<parameter name="GST_META_FLAG_LAST">
<parameter_description> additional flags can be added starting from this flag.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstMiniObjectFlags">
<description>
Flags for the mini object

</description>
<parameters>
<parameter name="GST_MINI_OBJECT_FLAG_LOCKABLE">
<parameter_description> the object can be locked and unlocked with
gst_mini_object_lock() and gst_mini_object_unlock().
</parameter_description>
</parameter>
<parameter name="GST_MINI_OBJECT_FLAG_LOCK_READONLY">
<parameter_description> the object is permanently locked in
READONLY mode. Only read locks can be performed on the object.
</parameter_description>
</parameter>
<parameter name="GST_MINI_OBJECT_FLAG_LAST">
<parameter_description> first flag that can be used by subclasses.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstNavigationCommand">
<description>
A set of commands that may be issued to an element providing the
#GstNavigation interface. The available commands can be queried via
the gst_navigation_query_new_commands() query.

For convenience in handling DVD navigation, the MENU commands are aliased as:
GST_NAVIGATION_COMMAND_DVD_MENU            = @GST_NAVIGATION_COMMAND_MENU1
GST_NAVIGATION_COMMAND_DVD_TITLE_MENU      = @GST_NAVIGATION_COMMAND_MENU2
GST_NAVIGATION_COMMAND_DVD_ROOT_MENU       = @GST_NAVIGATION_COMMAND_MENU3
GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = @GST_NAVIGATION_COMMAND_MENU4
GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU      = @GST_NAVIGATION_COMMAND_MENU5
GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU      = @GST_NAVIGATION_COMMAND_MENU6
GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    = @GST_NAVIGATION_COMMAND_MENU7

</description>
<parameters>
<parameter name="GST_NAVIGATION_COMMAND_INVALID">
<parameter_description> An invalid command entry
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_MENU1">
<parameter_description> Execute navigation menu command 1. For DVD,
this enters the DVD root menu, or exits back to the title from the menu.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_MENU2">
<parameter_description> Execute navigation menu command 2. For DVD,
this jumps to the DVD title menu.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_MENU3">
<parameter_description> Execute navigation menu command 3. For DVD,
this jumps into the DVD root menu.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_MENU4">
<parameter_description> Execute navigation menu command 4. For DVD,
this jumps to the Subpicture menu.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_MENU5">
<parameter_description> Execute navigation menu command 5. For DVD,
the jumps to the audio menu.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_MENU6">
<parameter_description> Execute navigation menu command 6. For DVD,
this jumps to the angles menu.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_MENU7">
<parameter_description> Execute navigation menu command 7. For DVD,
this jumps to the chapter menu.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_LEFT">
<parameter_description> Select the next button to the left in a menu,
if such a button exists.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_RIGHT">
<parameter_description> Select the next button to the right in a menu,
if such a button exists.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_UP">
<parameter_description> Select the button above the current one in a
menu, if such a button exists.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_DOWN">
<parameter_description> Select the button below the current one in a
menu, if such a button exists.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_ACTIVATE">
<parameter_description> Activate (click) the currently selected
button in a menu, if such a button exists.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_PREV_ANGLE">
<parameter_description> Switch to the previous angle in a
multiangle feature.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_COMMAND_NEXT_ANGLE">
<parameter_description> Switch to the next angle in a multiangle
feature.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstNavigationEventType">
<description>
Enum values for the various events that an element implementing the
GstNavigation interface might send up the pipeline.

</description>
<parameters>
<parameter name="GST_NAVIGATION_EVENT_INVALID">
<parameter_description> Returned from
gst_navigation_event_get_type() when the passed event is not a navigation event.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_EVENT_KEY_PRESS">
<parameter_description> A key press event. Use
gst_navigation_event_parse_key_event() to extract the details from the event.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_EVENT_KEY_RELEASE">
<parameter_description> A key release event. Use
gst_navigation_event_parse_key_event() to extract the details from the event.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS">
<parameter_description> A mouse button press event. Use
gst_navigation_event_parse_mouse_button_event() to extract the details from the
event.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE">
<parameter_description> A mouse button release event. Use
gst_navigation_event_parse_mouse_button_event() to extract the details from the
event.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_EVENT_MOUSE_MOVE">
<parameter_description> A mouse movement event. Use
gst_navigation_event_parse_mouse_move_event() to extract the details from the
event.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_EVENT_COMMAND">
<parameter_description> A navigation command event. Use
gst_navigation_event_parse_command() to extract the details from the event.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstNavigationMessageType">
<description>
A set of notifications that may be received on the bus when navigation
related status changes.

</description>
<parameters>
<parameter name="GST_NAVIGATION_MESSAGE_INVALID">
<parameter_description> Returned from
gst_navigation_message_get_type() when the passed message is not a
navigation message.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_MESSAGE_MOUSE_OVER">
<parameter_description> Sent when the mouse moves over or leaves a
clickable region of the output, such as a DVD menu button.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED">
<parameter_description> Sent when the set of available commands
changes and should re-queried by interested applications.
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED">
<parameter_description> Sent when display angles in a multi-angle
feature (such as a multiangle DVD) change - either angles have appeared or
disappeared.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstNavigationQueryType">
<description>
Tyoes of navigation interface queries.

</description>
<parameters>
<parameter name="GST_NAVIGATION_QUERY_INVALID">
<parameter_description> invalid query
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_QUERY_COMMANDS">
<parameter_description> command query
</parameter_description>
</parameter>
<parameter name="GST_NAVIGATION_QUERY_ANGLES">
<parameter_description> viewing angle query
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstObject::deep-notify">
<description>
The deep notify signal is used to be notified of property changes. It is
typically attached to the toplevel bin to receive notifications from all
the elements contained in that bin.

</description>
<parameters>
<parameter name="gstobject">
<parameter_description> a #GstObject
</parameter_description>
</parameter>
<parameter name="prop_object">
<parameter_description> the object that originated the signal
</parameter_description>
</parameter>
<parameter name="prop">
<parameter_description> the property that changed
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstObjectFlags">
<description>
The standard flags that an gstobject may have.

</description>
<parameters>
<parameter name="GST_OBJECT_FLAG_LAST">
<parameter_description> subclasses can add additional flags starting from this flag
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstPad::linked">
<description>
Signals that a pad has been linked to the peer pad.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the pad that emitted the signal
</parameter_description>
</parameter>
<parameter name="peer">
<parameter_description> the peer pad that has been connected
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstPad::unlinked">
<description>
Signals that a pad has been unlinked from the peer pad.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the pad that emitted the signal
</parameter_description>
</parameter>
<parameter name="peer">
<parameter_description> the peer pad that has been disconnected
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstPadDirection">
<description>
The direction of a pad.

</description>
<parameters>
<parameter name="GST_PAD_UNKNOWN">
<parameter_description> direction is unknown.
</parameter_description>
</parameter>
<parameter name="GST_PAD_SRC">
<parameter_description> the pad is a source pad.
</parameter_description>
</parameter>
<parameter name="GST_PAD_SINK">
<parameter_description> the pad is a sink pad.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPadFlags">
<description>
Pad state flags

</description>
<parameters>
<parameter name="GST_PAD_FLAG_BLOCKED">
<parameter_description> is dataflow on a pad blocked
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_FLUSHING">
<parameter_description> is pad flushing
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_EOS">
<parameter_description> is pad in EOS state
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_BLOCKING">
<parameter_description> is pad currently blocking on a buffer or event
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_NEED_PARENT">
<parameter_description> ensure that there is a parent object before calling
into the pad callbacks.
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_NEED_RECONFIGURE">
<parameter_description> the pad should be reconfigured/renegotiated.
The flag has to be unset manually after
reconfiguration happened.
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_PENDING_EVENTS">
<parameter_description> the pad has pending events
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_FIXED_CAPS">
<parameter_description> the pad is using fixed caps this means that once the
caps are set on the pad, the caps query function only
returns those caps.
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_PROXY_CAPS">
<parameter_description> the default event and query handler will forward
all events and queries to the internally linked pads
instead of discarding them.
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_PROXY_ALLOCATION">
<parameter_description> the default query handler will forward
allocation queries to the internally linked pads
instead of discarding them.
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_PROXY_SCHEDULING">
<parameter_description> the default query handler will forward
scheduling queries to the internally linked pads
instead of discarding them.
</parameter_description>
</parameter>
<parameter name="GST_PAD_FLAG_LAST">
<parameter_description> offset to define more flags
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPadLinkCheck">
<description>
The amount of checking to be done when linking pads. @GST_PAD_LINK_CHECK_CAPS
and @GST_PAD_LINK_CHECK_TEMPLATE_CAPS are mutually exclusive. If both are
specified, expensive but safe @GST_PAD_LINK_CHECK_CAPS are performed.

&lt;warning&gt;&lt;para&gt;
Only disable some of the checks if you are 100% certain you know the link
will not fail because of hierarchy/caps compatibility failures. If uncertain,
use the default checks (%GST_PAD_LINK_CHECK_DEFAULT) or the regular methods
for linking the pads.
&lt;/para&gt;&lt;/warning&gt;

</description>
<parameters>
<parameter name="GST_PAD_LINK_CHECK_NOTHING">
<parameter_description> Don't check hierarchy or caps compatibility.
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_CHECK_HIERARCHY">
<parameter_description> Check the pads have same parents/grandparents.
Could be omitted if it is already known that the two elements that own the
pads are in the same bin.
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_CHECK_TEMPLATE_CAPS">
<parameter_description> Check if the pads are compatible by using
their template caps. This is much faster than @GST_PAD_LINK_CHECK_CAPS, but
would be unsafe e.g. if one pad has %GST_CAPS_ANY.
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_CHECK_CAPS">
<parameter_description> Check if the pads are compatible by comparing the
caps returned by gst_pad_query_caps().
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_CHECK_DEFAULT">
<parameter_description> The default checks done when linking
pads (i.e. the ones used by gst_pad_link()).
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPadLinkReturn">
<description>
Result values from gst_pad_link and friends.

</description>
<parameters>
<parameter name="GST_PAD_LINK_OK">
<parameter_description> link succeeded
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_WRONG_HIERARCHY">
<parameter_description> pads have no common grandparent
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_WAS_LINKED">
<parameter_description> pad was already linked
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_WRONG_DIRECTION">
<parameter_description> pads have wrong direction
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_NOFORMAT">
<parameter_description> pads do not have common format
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_NOSCHED">
<parameter_description> pads cannot cooperate in scheduling
</parameter_description>
</parameter>
<parameter name="GST_PAD_LINK_REFUSED">
<parameter_description> refused for some reason
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPadMode">
<description>
The status of a GstPad. After activating a pad, which usually happens when the
parent element goes from READY to PAUSED, the GstPadMode defines if the
pad operates in push or pull mode.

</description>
<parameters>
<parameter name="GST_PAD_MODE_NONE">
<parameter_description> Pad will not handle dataflow
</parameter_description>
</parameter>
<parameter name="GST_PAD_MODE_PUSH">
<parameter_description> Pad handles dataflow in downstream push mode
</parameter_description>
</parameter>
<parameter name="GST_PAD_MODE_PULL">
<parameter_description> Pad handles dataflow in upstream pull mode
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPadPresence">
<description>
Indicates when this pad will become available.

</description>
<parameters>
<parameter name="GST_PAD_ALWAYS">
<parameter_description> the pad is always available
</parameter_description>
</parameter>
<parameter name="GST_PAD_SOMETIMES">
<parameter_description> the pad will become available depending on the media stream
</parameter_description>
</parameter>
<parameter name="GST_PAD_REQUEST">
<parameter_description> the pad is only available on request with
gst_element_get_request_pad().
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPadProbeReturn">
<description>
Different return values for the #GstPadProbeCallback.

</description>
<parameters>
<parameter name="GST_PAD_PROBE_OK">
<parameter_description> normal probe return value
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_DROP">
<parameter_description> drop data in data probes. For push mode this means that
the data item is not sent downstream. For pull mode, it means that the
data item is not passed upstream. In both cases, this result code
returns #GST_FLOW_OK or %TRUE to the caller.
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_REMOVE">
<parameter_description> remove probe
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_PASS">
<parameter_description> pass the data item in the block probe and block on
the next item
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPadProbeType">
<description>
The different probing types that can occur. When either one of
@GST_PAD_PROBE_TYPE_IDLE or @GST_PAD_PROBE_TYPE_BLOCK is used, the probe will be a
blocking probe.

</description>
<parameters>
<parameter name="GST_PAD_PROBE_TYPE_INVALID">
<parameter_description> invalid probe type
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_IDLE">
<parameter_description> probe idle pads and block
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_BLOCK">
<parameter_description> probe and block pads
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_BUFFER">
<parameter_description> probe buffers
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_BUFFER_LIST">
<parameter_description> probe buffer lists
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM">
<parameter_description> probe downstream events
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_EVENT_UPSTREAM">
<parameter_description> probe upstream events
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_EVENT_FLUSH">
<parameter_description> probe flush events. This probe has to be
explicitly enabled and is not included in the
@@GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM or
@@GST_PAD_PROBE_TYPE_EVENT_UPSTREAM probe types.
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM">
<parameter_description> probe downstream queries
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_QUERY_UPSTREAM">
<parameter_description> probe upstream queries
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_PUSH">
<parameter_description> probe push
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_PULL">
<parameter_description> probe pull
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_BLOCKING">
<parameter_description> probe and block at the next opportunity, at data flow or when idle
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM">
<parameter_description> probe downstream data (buffers, buffer lists, and events)
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_DATA_UPSTREAM">
<parameter_description> probe upstream data (events)
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_DATA_BOTH">
<parameter_description> probe upstream and downstream data (buffers, buffer lists, and events)
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM">
<parameter_description> probe and block downstream data (buffers, buffer lists, and events)
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM">
<parameter_description> probe and block upstream data (events)
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_EVENT_BOTH">
<parameter_description> probe upstream and downstream events
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_QUERY_BOTH">
<parameter_description> probe upstream and downstream queries
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_ALL_BOTH">
<parameter_description> probe upstream events and queries and downstream buffers, buffer lists, events and queries
</parameter_description>
</parameter>
<parameter name="GST_PAD_PROBE_TYPE_SCHEDULING">
<parameter_description> probe push and pull
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstPadTemplate::pad-created">
<description>
This signal is fired when an element creates a pad from this template.

</description>
<parameters>
<parameter name="pad_template">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the pad that was created.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstPadTemplateFlags">
<description>
Flags for the padtemplate

</description>
<parameters>
<parameter name="GST_PAD_TEMPLATE_FLAG_LAST">
<parameter_description> first flag that can be used by subclasses.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstParseError">
<description>
The different parsing errors that can occur.

</description>
<parameters>
<parameter name="GST_PARSE_ERROR_SYNTAX">
<parameter_description> A syntax error occured.
</parameter_description>
</parameter>
<parameter name="GST_PARSE_ERROR_NO_SUCH_ELEMENT">
<parameter_description> The description contained an unknown element
</parameter_description>
</parameter>
<parameter name="GST_PARSE_ERROR_NO_SUCH_PROPERTY">
<parameter_description> An element did not have a specified property
</parameter_description>
</parameter>
<parameter name="GST_PARSE_ERROR_LINK">
<parameter_description> There was an error linking two pads.
</parameter_description>
</parameter>
<parameter name="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY">
<parameter_description> There was an error setting a property
</parameter_description>
</parameter>
<parameter name="GST_PARSE_ERROR_EMPTY_BIN">
<parameter_description> An empty bin was specified.
</parameter_description>
</parameter>
<parameter name="GST_PARSE_ERROR_EMPTY">
<parameter_description> An empty description was specified
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstParseFlags">
<description>
Parsing options.

</description>
<parameters>
<parameter name="GST_PARSE_FLAG_NONE">
<parameter_description> Do not use any special parsing options.
</parameter_description>
</parameter>
<parameter name="GST_PARSE_FLAG_FATAL_ERRORS">
<parameter_description> Always return NULL when an error occurs
(default behaviour is to return partially constructed bins or elements
in some cases)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPipelineFlags">
<description>
Pipeline flags

</description>
<parameters>
<parameter name="GST_PIPELINE_FLAG_FIXED_CLOCK">
<parameter_description> this pipeline works with a fixed clock
</parameter_description>
</parameter>
<parameter name="GST_PIPELINE_FLAG_LAST">
<parameter_description> offset to define more flags
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPluginDependencyFlags">
<description>
Flags used in connection with gst_plugin_add_dependency().

</description>
<parameters>
<parameter name="GST_PLUGIN_DEPENDENCY_FLAG_NONE">
<parameter_description> no special flags
</parameter_description>
</parameter>
<parameter name="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE">
<parameter_description> recurse into subdirectories
</parameter_description>
</parameter>
<parameter name="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY">
<parameter_description> use paths
argument only if none of the environment variables is set
</parameter_description>
</parameter>
<parameter name="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX">
<parameter_description> interpret
filename argument as filter suffix and check all matching files in
the directory
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPluginError">
<description>
The plugin loading errors

</description>
<parameters>
<parameter name="GST_PLUGIN_ERROR_MODULE">
<parameter_description> The plugin could not be loaded
</parameter_description>
</parameter>
<parameter name="GST_PLUGIN_ERROR_DEPENDENCIES">
<parameter_description> The plugin has unresolved dependencies
</parameter_description>
</parameter>
<parameter name="GST_PLUGIN_ERROR_NAME_MISMATCH">
<parameter_description> The plugin has already be loaded from a different file
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstPluginFlags">
<description>
The plugin loading state

</description>
<parameters>
<parameter name="GST_PLUGIN_FLAG_CACHED">
<parameter_description> Temporarily loaded plugins
</parameter_description>
</parameter>
<parameter name="GST_PLUGIN_FLAG_BLACKLISTED">
<parameter_description> The plugin won't be scanned (again)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstProgressType">
<description>
The type of a %GST_MESSAGE_PROGRESS. The progress messages inform the
application of the status of assynchronous tasks.

</description>
<parameters>
<parameter name="GST_PROGRESS_TYPE_START">
<parameter_description> A new task started.
</parameter_description>
</parameter>
<parameter name="GST_PROGRESS_TYPE_CONTINUE">
<parameter_description> A task completed and a new one continues.
</parameter_description>
</parameter>
<parameter name="GST_PROGRESS_TYPE_COMPLETE">
<parameter_description> A task completed.
</parameter_description>
</parameter>
<parameter name="GST_PROGRESS_TYPE_CANCELED">
<parameter_description> A task was canceled.
</parameter_description>
</parameter>
<parameter name="GST_PROGRESS_TYPE_ERROR">
<parameter_description> A task caused an error. An error message is also
posted on the bus.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstQOSType">
<description>
The different types of QoS events that can be given to the
gst_event_new_qos() method.

</description>
<parameters>
<parameter name="GST_QOS_TYPE_OVERFLOW">
<parameter_description> The QoS event type that is produced when downstream
elements are producing data too quickly and the element can't keep up
processing the data. Upstream should reduce their processing rate. This
type is also used when buffers arrive early or in time.
</parameter_description>
</parameter>
<parameter name="GST_QOS_TYPE_UNDERFLOW">
<parameter_description> The QoS event type that is produced when downstream
elements are producing data too slowly and need to speed up their processing
rate.
</parameter_description>
</parameter>
<parameter name="GST_QOS_TYPE_THROTTLE">
<parameter_description> The QoS event type that is produced when the
application enabled throttling to limit the datarate.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstQueryType">
<description>
Standard predefined Query types

</description>
<parameters>
<parameter name="GST_QUERY_UNKNOWN">
<parameter_description> unknown query type
</parameter_description>
</parameter>
<parameter name="GST_QUERY_POSITION">
<parameter_description> current position in stream
</parameter_description>
</parameter>
<parameter name="GST_QUERY_DURATION">
<parameter_description> total duration of the stream
</parameter_description>
</parameter>
<parameter name="GST_QUERY_LATENCY">
<parameter_description> latency of stream
</parameter_description>
</parameter>
<parameter name="GST_QUERY_JITTER">
<parameter_description> current jitter of stream
</parameter_description>
</parameter>
<parameter name="GST_QUERY_RATE">
<parameter_description> current rate of the stream
</parameter_description>
</parameter>
<parameter name="GST_QUERY_SEEKING">
<parameter_description> seeking capabilities
</parameter_description>
</parameter>
<parameter name="GST_QUERY_SEGMENT">
<parameter_description> segment start/stop positions
</parameter_description>
</parameter>
<parameter name="GST_QUERY_CONVERT">
<parameter_description> convert values between formats
</parameter_description>
</parameter>
<parameter name="GST_QUERY_FORMATS">
<parameter_description> query supported formats for convert
</parameter_description>
</parameter>
<parameter name="GST_QUERY_BUFFERING">
<parameter_description> query available media for efficient seeking.
</parameter_description>
</parameter>
<parameter name="GST_QUERY_CUSTOM">
<parameter_description> a custom application or element defined query.
</parameter_description>
</parameter>
<parameter name="GST_QUERY_URI">
<parameter_description> query the URI of the source or sink.
</parameter_description>
</parameter>
<parameter name="GST_QUERY_ALLOCATION">
<parameter_description> the buffer allocation properties
</parameter_description>
</parameter>
<parameter name="GST_QUERY_SCHEDULING">
<parameter_description> the scheduling properties
</parameter_description>
</parameter>
<parameter name="GST_QUERY_ACCEPT_CAPS">
<parameter_description> the accept caps query
</parameter_description>
</parameter>
<parameter name="GST_QUERY_CAPS">
<parameter_description> the caps query
</parameter_description>
</parameter>
<parameter name="GST_QUERY_DRAIN">
<parameter_description> wait till all serialized data is consumed downstream
</parameter_description>
</parameter>
<parameter name="GST_QUERY_CONTEXT">
<parameter_description> query the pipeline-local context from downstream
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstQueryTypeFlags">
<description>
#GstQueryTypeFlags indicate the aspects of the different #GstQueryType
values. You can get the type flags of a #GstQueryType with the
gst_query_type_get_flags() function.

</description>
<parameters>
<parameter name="GST_QUERY_TYPE_UPSTREAM">
<parameter_description>     Set if the query can travel upstream.
</parameter_description>
</parameter>
<parameter name="GST_QUERY_TYPE_DOWNSTREAM">
<parameter_description>   Set if the query can travel downstream.
</parameter_description>
</parameter>
<parameter name="GST_QUERY_TYPE_SERIALIZED">
<parameter_description>   Set if the query should be serialized with data
flow.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTCPFBType">
<description>
Different types of feedback messages.

</description>
<parameters>
<parameter name="GST_RTCP_FB_TYPE_INVALID">
<parameter_description> Invalid type
</parameter_description>
</parameter>
<parameter name="GST_RTCP_RTPFB_TYPE_NACK">
<parameter_description> Generic NACK
</parameter_description>
</parameter>
<parameter name="GST_RTCP_RTPFB_TYPE_TMMBR">
<parameter_description> Temporary Maximum Media Stream Bit Rate Request
</parameter_description>
</parameter>
<parameter name="GST_RTCP_RTPFB_TYPE_TMMBN">
<parameter_description> Temporary Maximum Media Stream Bit Rate
Notification
</parameter_description>
</parameter>
<parameter name="GST_RTCP_RTPFB_TYPE_RTCP_SR_SEQ">
<parameter_description> Request an SR packet for early
synchronization
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_PLI">
<parameter_description> Picture Loss Indication
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_SLI">
<parameter_description> Slice Loss Indication
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_RPSI">
<parameter_description> Reference Picture Selection Indication
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_AFB">
<parameter_description> Application layer Feedback
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_FIR">
<parameter_description> Full Intra Request Command
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_TSTR">
<parameter_description> Temporal-Spatial Trade-off Request
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_TSTN">
<parameter_description> Temporal-Spatial Trade-off Notification
</parameter_description>
</parameter>
<parameter name="GST_RTCP_PSFB_TYPE_VBCN">
<parameter_description> Video Back Channel Message
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTCPSDESType">
<description>
Different types of SDES content.

</description>
<parameters>
<parameter name="GST_RTCP_SDES_INVALID">
<parameter_description> Invalid SDES entry
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_END">
<parameter_description> End of SDES list
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_CNAME">
<parameter_description> Canonical name
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_NAME">
<parameter_description> User name
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_EMAIL">
<parameter_description> User's electronic mail address
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_PHONE">
<parameter_description> User's phone number
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_LOC">
<parameter_description> Geographic user location
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_TOOL">
<parameter_description> Name of application or tool
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_NOTE">
<parameter_description> Notice about the source
</parameter_description>
</parameter>
<parameter name="GST_RTCP_SDES_PRIV">
<parameter_description> Private extensions
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTCPType">
<description>
Different RTCP packet types.

</description>
<parameters>
<parameter name="GST_RTCP_TYPE_INVALID">
<parameter_description> Invalid type
</parameter_description>
</parameter>
<parameter name="GST_RTCP_TYPE_SR">
<parameter_description> Sender report
</parameter_description>
</parameter>
<parameter name="GST_RTCP_TYPE_RR">
<parameter_description> Receiver report
</parameter_description>
</parameter>
<parameter name="GST_RTCP_TYPE_SDES">
<parameter_description> Source description
</parameter_description>
</parameter>
<parameter name="GST_RTCP_TYPE_BYE">
<parameter_description> Goodbye
</parameter_description>
</parameter>
<parameter name="GST_RTCP_TYPE_APP">
<parameter_description> Application defined
</parameter_description>
</parameter>
<parameter name="GST_RTCP_TYPE_RTPFB">
<parameter_description> Transport layer feedback.
</parameter_description>
</parameter>
<parameter name="GST_RTCP_TYPE_PSFB">
<parameter_description> Payload-specific feedback.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTPPayload">
<description>
Standard predefined fixed payload types.

The official list is at:
http://www.iana.org/assignments/rtp-parameters

Audio:
reserved: 19
unassigned: 20-23,

Video:
unassigned: 24, 27, 29, 30, 35-71, 77-95
Reserved for RTCP conflict avoidance: 72-76

</description>
<parameters>
<parameter name="GST_RTP_PAYLOAD_PCMU">
<parameter_description> ITU-T G.711. mu-law audio (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_1016">
<parameter_description> RFC 3551 says reserved
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_G721">
<parameter_description> RFC 3551 says reserved
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_GSM">
<parameter_description> GSM audio
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_G723">
<parameter_description> ITU G.723.1 audio
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_DVI4_8000">
<parameter_description> IMA ADPCM wave type (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_DVI4_16000">
<parameter_description> IMA ADPCM wave type (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_LPC">
<parameter_description> experimental linear predictive encoding
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_PCMA">
<parameter_description> ITU-T G.711 A-law audio (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_G722">
<parameter_description> ITU-T G.722 (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_L16_STEREO">
<parameter_description> stereo PCM
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_L16_MONO">
<parameter_description> mono PCM
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_QCELP">
<parameter_description> EIA &amp; TIA standard IS-733
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_CN">
<parameter_description> Comfort Noise (RFC 3389)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_MPA">
<parameter_description> Audio MPEG 1-3.
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_G728">
<parameter_description> ITU-T G.728 Speech coder (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_DVI4_11025">
<parameter_description> IMA ADPCM wave type (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_DVI4_22050">
<parameter_description> IMA ADPCM wave type (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_G729">
<parameter_description> ITU-T G.729 Speech coder (RFC 3551)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_CELLB">
<parameter_description> See RFC 2029
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_JPEG">
<parameter_description> ISO Standards 10918-1 and 10918-2 (RFC 2435)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_NV">
<parameter_description> nv encoding by Ron Frederick
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_H261">
<parameter_description> ITU-T Recommendation H.261 (RFC 2032)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_MPV">
<parameter_description> Video MPEG 1 &amp; 2 (RFC 2250)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_MP2T">
<parameter_description> MPEG-2 transport stream (RFC 2250)
</parameter_description>
</parameter>
<parameter name="GST_RTP_PAYLOAD_H263">
<parameter_description> Video H263 (RFC 2190)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPAuthMethod">
<description>
Authentication methods, ordered by strength

</description>
<parameters>
<parameter name="GST_RTSP_AUTH_NONE">
<parameter_description> no authentication
</parameter_description>
</parameter>
<parameter name="GST_RTSP_AUTH_BASIC">
<parameter_description> basic authentication
</parameter_description>
</parameter>
<parameter name="GST_RTSP_AUTH_DIGEST">
<parameter_description> digest authentication
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPEvent">
<description>
The possible events for the connection.

</description>
<parameters>
<parameter name="GST_RTSP_EV_READ">
<parameter_description> connection is readable
</parameter_description>
</parameter>
<parameter name="GST_RTSP_EV_WRITE">
<parameter_description> connection is writable
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPFamily">
<description>
The possible network families.

</description>
<parameters>
<parameter name="GST_RTSP_FAM_NONE">
<parameter_description> unknown network family
</parameter_description>
</parameter>
<parameter name="GST_RTSP_FAM_INET">
<parameter_description> internet
</parameter_description>
</parameter>
<parameter name="GST_RTSP_FAM_INET6">
<parameter_description> internet V6
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPLowerTrans">
<description>
The different transport methods.

</description>
<parameters>
<parameter name="GST_RTSP_LOWER_TRANS_UNKNOWN">
<parameter_description> invalid transport flag
</parameter_description>
</parameter>
<parameter name="GST_RTSP_LOWER_TRANS_UDP">
<parameter_description> stream data over UDP
</parameter_description>
</parameter>
<parameter name="GST_RTSP_LOWER_TRANS_UDP_MCAST">
<parameter_description> stream data over UDP multicast
</parameter_description>
</parameter>
<parameter name="GST_RTSP_LOWER_TRANS_TCP">
<parameter_description> stream data over TCP
</parameter_description>
</parameter>
<parameter name="GST_RTSP_LOWER_TRANS_HTTP">
<parameter_description> stream data tunneled over HTTP.
</parameter_description>
</parameter>
<parameter name="GST_RTSP_LOWER_TRANS_TLS">
<parameter_description> encrypt TCP and HTTP with TLS
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPMethod">
<description>
The different supported RTSP methods.

</description>
<parameters>
<parameter name="GST_RTSP_INVALID">
<parameter_description> invalid method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_DESCRIBE">
<parameter_description> the DESCRIBE method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ANNOUNCE">
<parameter_description> the ANNOUNCE method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_GET_PARAMETER">
<parameter_description> the GET_PARAMETER method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_OPTIONS">
<parameter_description> the OPTIONS method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_PAUSE">
<parameter_description> the PAUSE method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_PLAY">
<parameter_description> the PLAY method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_RECORD">
<parameter_description> the RECORD method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_REDIRECT">
<parameter_description> the REDIRECT method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_SETUP">
<parameter_description> the SETUP method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_SET_PARAMETER">
<parameter_description> the SET_PARAMETER method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_TEARDOWN">
<parameter_description> the TEARDOWN method
</parameter_description>
</parameter>
<parameter name="GST_RTSP_GET">
<parameter_description> the GET method (HTTP).
</parameter_description>
</parameter>
<parameter name="GST_RTSP_POST">
<parameter_description> the POST method (HTTP).
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPMsgType">
<description>
The type of a message.

</description>
<parameters>
<parameter name="GST_RTSP_MESSAGE_INVALID">
<parameter_description> invalid message type
</parameter_description>
</parameter>
<parameter name="GST_RTSP_MESSAGE_REQUEST">
<parameter_description> RTSP request message
</parameter_description>
</parameter>
<parameter name="GST_RTSP_MESSAGE_RESPONSE">
<parameter_description> RTSP response message
</parameter_description>
</parameter>
<parameter name="GST_RTSP_MESSAGE_HTTP_REQUEST">
<parameter_description> HTTP request message.
</parameter_description>
</parameter>
<parameter name="GST_RTSP_MESSAGE_HTTP_RESPONSE">
<parameter_description> HTTP response message.
</parameter_description>
</parameter>
<parameter name="GST_RTSP_MESSAGE_DATA">
<parameter_description> data message
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPProfile">
<description>
The transfer profile to use.

</description>
<parameters>
<parameter name="GST_RTSP_PROFILE_UNKNOWN">
<parameter_description> invalid profile
</parameter_description>
</parameter>
<parameter name="GST_RTSP_PROFILE_AVP">
<parameter_description> the Audio/Visual profile
</parameter_description>
</parameter>
<parameter name="GST_RTSP_PROFILE_SAVP">
<parameter_description> the secure Audio/Visual profile
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPRangeUnit">
<description>
Different possible time range units.

</description>
<parameters>
<parameter name="GST_RTSP_RANGE_SMPTE">
<parameter_description> SMPTE timecode
</parameter_description>
</parameter>
<parameter name="GST_RTSP_RANGE_SMPTE_30_DROP">
<parameter_description> 29.97 frames per second
</parameter_description>
</parameter>
<parameter name="GST_RTSP_RANGE_SMPTE_25">
<parameter_description> 25 frames per second
</parameter_description>
</parameter>
<parameter name="GST_RTSP_RANGE_NPT">
<parameter_description> Normal play time
</parameter_description>
</parameter>
<parameter name="GST_RTSP_RANGE_CLOCK">
<parameter_description> Absolute time expressed as ISO 8601 timestamps
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPResult">
<description>
Result codes from the RTSP functions.

</description>
<parameters>
<parameter name="GST_RTSP_OK">
<parameter_description> no error
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ERROR">
<parameter_description> some unspecified error occured
</parameter_description>
</parameter>
<parameter name="GST_RTSP_EINVAL">
<parameter_description> invalid arguments were provided to a function
</parameter_description>
</parameter>
<parameter name="GST_RTSP_EINTR">
<parameter_description> an operation was canceled
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ENOMEM">
<parameter_description> no memory was available for the operation
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ERESOLV">
<parameter_description> a host resolve error occured
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ENOTIMPL">
<parameter_description> function not implemented
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ESYS">
<parameter_description> a system error occured, errno contains more details
</parameter_description>
</parameter>
<parameter name="GST_RTSP_EPARSE">
<parameter_description> a persing error occured
</parameter_description>
</parameter>
<parameter name="GST_RTSP_EWSASTART">
<parameter_description> windows networking could not start
</parameter_description>
</parameter>
<parameter name="GST_RTSP_EWSAVERSION">
<parameter_description> windows networking stack has wrong version
</parameter_description>
</parameter>
<parameter name="GST_RTSP_EEOF">
<parameter_description> end-of-file was reached
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ENET">
<parameter_description> a network problem occured, h_errno contains more details
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ENOTIP">
<parameter_description> the host is not an IP host
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ETIMEOUT">
<parameter_description> a timeout occured
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ETGET">
<parameter_description> the tunnel GET request has been performed
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ETPOST">
<parameter_description> the tunnel POST request has been performed
</parameter_description>
</parameter>
<parameter name="GST_RTSP_ELAST">
<parameter_description> last error
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPState">
<description>
The different RTSP states.

</description>
<parameters>
<parameter name="GST_RTSP_STATE_INVALID">
<parameter_description> invalid state
</parameter_description>
</parameter>
<parameter name="GST_RTSP_STATE_INIT">
<parameter_description> initializing
</parameter_description>
</parameter>
<parameter name="GST_RTSP_STATE_READY">
<parameter_description> ready for operation
</parameter_description>
</parameter>
<parameter name="GST_RTSP_STATE_SEEKING">
<parameter_description> seeking in progress
</parameter_description>
</parameter>
<parameter name="GST_RTSP_STATE_PLAYING">
<parameter_description> playing
</parameter_description>
</parameter>
<parameter name="GST_RTSP_STATE_RECORDING">
<parameter_description> recording
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPTimeType">
<description>
Possible time types.

</description>
<parameters>
<parameter name="GST_RTSP_TIME_SECONDS">
<parameter_description> seconds
</parameter_description>
</parameter>
<parameter name="GST_RTSP_TIME_NOW">
<parameter_description> now
</parameter_description>
</parameter>
<parameter name="GST_RTSP_TIME_END">
<parameter_description> end
</parameter_description>
</parameter>
<parameter name="GST_RTSP_TIME_FRAMES">
<parameter_description> frames and subframes
</parameter_description>
</parameter>
<parameter name="GST_RTSP_TIME_UTC">
<parameter_description> UTC time
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPTransMode">
<description>
The transfer mode to use.

</description>
<parameters>
<parameter name="GST_RTSP_TRANS_UNKNOWN">
<parameter_description> invalid tansport mode
</parameter_description>
</parameter>
<parameter name="GST_RTSP_TRANS_RTP">
<parameter_description> transfer RTP data
</parameter_description>
</parameter>
<parameter name="GST_RTSP_TRANS_RDT">
<parameter_description> transfer RDT (RealMedia) data
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRTSPVersion">
<description>
The supported RTSP versions.

</description>
<parameters>
<parameter name="GST_RTSP_VERSION_INVALID">
<parameter_description> unknown/invalid version
</parameter_description>
</parameter>
<parameter name="GST_RTSP_VERSION_1_0">
<parameter_description> version 1.0
</parameter_description>
</parameter>
<parameter name="GST_RTSP_VERSION_1_1">
<parameter_description> version 1.1.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstRank">
<description>
Element priority ranks. Defines the order in which the autoplugger (or
similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
will choose this element over an alternative one with the same function.

These constants serve as a rough guidance for defining the rank of a
#GstPluginFeature. Any value is valid, including values bigger than
@GST_RANK_PRIMARY.

</description>
<parameters>
<parameter name="GST_RANK_NONE">
<parameter_description> will be chosen last or not at all
</parameter_description>
</parameter>
<parameter name="GST_RANK_MARGINAL">
<parameter_description> unlikely to be chosen
</parameter_description>
</parameter>
<parameter name="GST_RANK_SECONDARY">
<parameter_description> likely to be chosen
</parameter_description>
</parameter>
<parameter name="GST_RANK_PRIMARY">
<parameter_description> will be chosen first
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GstRegistry::feature-added">
<description>
Signals that a feature has been added to the registry (possibly
replacing a previously-added one by the same name)

</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry that emitted the signal
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> the feature that has been added
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GstRegistry::plugin-added">
<description>
Signals that a plugin has been added to the registry (possibly
replacing a previously-added one by the same name)

</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry that emitted the signal
</parameter_description>
</parameter>
<parameter name="plugin">
<parameter_description> the plugin that has been added
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GstResourceError">
<description>
Resource errors are for any resource used by an element:
memory, files, network connections, process space, ...
They're typically used by source and sink elements.

</description>
<parameters>
<parameter name="GST_RESOURCE_ERROR_FAILED">
<parameter_description> a general error which doesn't fit in any other
category.  Make sure you add a custom message to the error call.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_TOO_LAZY">
<parameter_description> do not use this except as a placeholder for
deciding where to go while developing code.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_NOT_FOUND">
<parameter_description> used when the resource could not be found.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_BUSY">
<parameter_description> used when resource is busy.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_OPEN_READ">
<parameter_description> used when resource fails to open for reading.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_OPEN_WRITE">
<parameter_description> used when resource fails to open for writing.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_OPEN_READ_WRITE">
<parameter_description> used when resource cannot be opened for
both reading and writing, or either (but unspecified which).
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_CLOSE">
<parameter_description> used when the resource can't be closed.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_READ">
<parameter_description> used when the resource can't be read from.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_WRITE">
<parameter_description> used when the resource can't be written to.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_SEEK">
<parameter_description> used when a seek on the resource fails.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_SYNC">
<parameter_description> used when a synchronize on the resource fails.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_SETTINGS">
<parameter_description> used when settings can't be manipulated on.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_NO_SPACE_LEFT">
<parameter_description> used when the resource has no space left.
</parameter_description>
</parameter>
<parameter name="GST_RESOURCE_ERROR_NUM_ERRORS">
<parameter_description> the number of resource error types.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstSDPResult">
<description>
Return values for the SDP functions.

</description>
<parameters>
<parameter name="GST_SDP_OK">
<parameter_description> A successful return value
</parameter_description>
</parameter>
<parameter name="GST_SDP_EINVAL">
<parameter_description> a function was given invalid parameters
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstSchedulingFlags">
<description>
The different scheduling flags.

</description>
<parameters>
<parameter name="GST_SCHEDULING_FLAG_SEEKABLE">
<parameter_description> if seeking is possible
</parameter_description>
</parameter>
<parameter name="GST_SCHEDULING_FLAG_SEQUENTIAL">
<parameter_description> if sequential access is recommended
</parameter_description>
</parameter>
<parameter name="GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED">
<parameter_description> if bandwidth is limited and buffering possible
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstSearchMode">
<description>
The different search modes.

</description>
<parameters>
<parameter name="GST_SEARCH_MODE_EXACT">
<parameter_description> Only search for exact matches.
</parameter_description>
</parameter>
<parameter name="GST_SEARCH_MODE_BEFORE">
<parameter_description> Search for an exact match or the element just before.
</parameter_description>
</parameter>
<parameter name="GST_SEARCH_MODE_AFTER">
<parameter_description> Search for an exact match or the element just after.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstSeekFlags">
<description>
Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
can be used together.

A non flushing seek might take some time to perform as the currently
playing data in the pipeline will not be cleared.

An accurate seek might be slower for formats that don't have any indexes
or timestamp markers in the stream. Specifying this flag might require a
complete scan of the file in those cases.

When performing a segment seek: after the playback of the segment completes,
no EOS will be emmited by the element that performed the seek, but a
#GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
When this message is posted, it is possible to send a new seek event to
continue playback. With this seek method it is possible to perform seamless
looping or simple linear editing.

When doing fast forward (rate &gt; 1.0) or fast reverse (rate &lt; -1.0) trickmode
playback, the @GST_SEEK_FLAG_SKIP flag can be used to instruct decoders
and demuxers to adjust the playback rate by skipping frames. This can improve
performance and decrease CPU usage because not all frames need to be decoded.

The @GST_SEEK_FLAG_SNAP_BEFORE flag can be used to snap to the previous
relevant location, and the @GST_SEEK_FLAG_SNAP_AFTER flag can be used to
select the next relevant location. If KEY_UNIT is specified, the relevant
location is a keyframe. If both flags are specified, the nearest of these
locations will be selected. If none are specified, the implementation is
free to select whichever it wants.
The before and after here are in running time, so when playing backwards,
the next location refers to the one that will played in next, and not the
one that is located after in the actual source stream.

Also see part-seeking.txt in the GStreamer design documentation for more
details on the meaning of these flags and the behaviour expected of
elements that handle them.

</description>
<parameters>
<parameter name="GST_SEEK_FLAG_NONE">
<parameter_description> no flag
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_FLUSH">
<parameter_description> flush pipeline
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_ACCURATE">
<parameter_description> accurate position is requested, this might
be considerably slower for some formats.
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_KEY_UNIT">
<parameter_description> seek to the nearest keyframe. This might be
faster but less accurate.
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_SEGMENT">
<parameter_description> perform a segment seek.
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_SKIP">
<parameter_description> when doing fast foward or fast reverse playback, allow
elements to skip frames instead of generating all
frames.
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_SNAP_BEFORE">
<parameter_description> go to a location before the requested position,
if KEY_UNIT this means the keyframe at or before the
requested position the one at or before the seek target.
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_SNAP_AFTER">
<parameter_description> go to a location after the requested position,
if KEY_UNIT this means the keyframe at of after the
requested position.
</parameter_description>
</parameter>
<parameter name="GST_SEEK_FLAG_SNAP_NEAREST">
<parameter_description> go to a position near the requested position,
if KEY_UNIT this means the keyframe closest to the
requested position, if both keyframes are at an equal
distance, behaves like SNAP_BEFORE.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstSeekType">
<description>
The different types of seek events. When constructing a seek event with
gst_event_new_seek() or when doing gst_segment_do_seek ().

</description>
<parameters>
<parameter name="GST_SEEK_TYPE_NONE">
<parameter_description> no change in position is required
</parameter_description>
</parameter>
<parameter name="GST_SEEK_TYPE_SET">
<parameter_description> absolute position is requested
</parameter_description>
</parameter>
<parameter name="GST_SEEK_TYPE_END">
<parameter_description> relative position to duration is requested
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstSegmentFlags">
<description>
Flags for the GstSegment structure. Currently mapped to the corresponding
values of the seek flags.

</description>
<parameters>
<parameter name="GST_SEGMENT_FLAG_NONE">
<parameter_description> no flags
</parameter_description>
</parameter>
<parameter name="GST_SEGMENT_FLAG_RESET">
<parameter_description> reset the pipeline running_time to the segment
running_time
</parameter_description>
</parameter>
<parameter name="GST_SEGMENT_FLAG_SKIP">
<parameter_description> perform skip playback
</parameter_description>
</parameter>
<parameter name="GST_SEGMENT_FLAG_SEGMENT">
<parameter_description> send SEGMENT_DONE instead of EOS
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstState">
<description>
The possible states an element can be in. States can be changed using
gst_element_set_state() and checked using gst_element_get_state().

</description>
<parameters>
<parameter name="GST_STATE_VOID_PENDING">
<parameter_description> no pending state.
</parameter_description>
</parameter>
<parameter name="GST_STATE_NULL">
<parameter_description> the NULL state or initial state of an element.
</parameter_description>
</parameter>
<parameter name="GST_STATE_READY">
<parameter_description> the element is ready to go to PAUSED.
</parameter_description>
</parameter>
<parameter name="GST_STATE_PAUSED">
<parameter_description> the element is PAUSED, it is ready to accept and
process data. Sink elements however only accept one
buffer and then block.
</parameter_description>
</parameter>
<parameter name="GST_STATE_PLAYING">
<parameter_description> the element is PLAYING, the #GstClock is running and
the data is flowing.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstStateChange">
<description>
These are the different state changes an element goes through.
%GST_STATE_NULL &#8658; %GST_STATE_PLAYING is called an upwards state change
and %GST_STATE_PLAYING &#8658; %GST_STATE_NULL a downwards state change.

</description>
<parameters>
<parameter name="GST_STATE_CHANGE_NULL_TO_READY">
<parameter_description> state change from NULL to READY.
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
The element must check if the resources it needs are available. Device
sinks and -sources typically try to probe the device to constrain their
caps.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
The element opens the device (in case feature need to be probed).
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_READY_TO_PAUSED">
<parameter_description> state change from READY to PAUSED.
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
The element pads are activated in order to receive data in PAUSED.
Streaming threads are started.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Some elements might need to return %GST_STATE_CHANGE_ASYNC and complete
the state change when they have enough information. It is a requirement
for sinks to return %GST_STATE_CHANGE_ASYNC and complete the state change
when they receive the first buffer or %GST_EVENT_EOS (preroll).
Sinks also block the dataflow when in PAUSED.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
A pipeline resets the running_time to 0.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Live sources return %GST_STATE_CHANGE_NO_PREROLL and don't generate data.
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_PAUSED_TO_PLAYING">
<parameter_description> state change from PAUSED to PLAYING.
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
Most elements ignore this state change.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
The pipeline selects a #GstClock and distributes this to all the children
before setting them to PLAYING. This means that it is only alowed to
synchronize on the #GstClock in the PLAYING state.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
The pipeline uses the #GstClock and the running_time to calculate the
base_time. The base_time is distributed to all children when performing
the state change.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Sink elements stop blocking on the preroll buffer or event and start
rendering the data.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Sinks can post %GST_MESSAGE_EOS in the PLAYING state. It is not allowed
to post %GST_MESSAGE_EOS when not in the PLAYING state.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
While streaming in PAUSED or PLAYING elements can create and remove
sometimes pads.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Live sources start generating data and return %GST_STATE_CHANGE_SUCCESS.
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_PLAYING_TO_PAUSED">
<parameter_description> state change from PLAYING to PAUSED.
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
Most elements ignore this state change.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
The pipeline calculates the running_time based on the last selected
#GstClock and the base_time. It stores this information to continue
playback when going back to the PLAYING state.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Sinks unblock any #GstClock wait calls.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
When a sink does not have a pending buffer to play, it returns
%GST_STATE_CHANGE_ASYNC from this state change and completes the state
change when it receives a new buffer or an %GST_EVENT_EOS.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Any queued %GST_MESSAGE_EOS items are removed since they will be reposted
when going back to the PLAYING state. The EOS messages are queued in
#GstBin containers.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Live sources stop generating data and return %GST_STATE_CHANGE_NO_PREROLL.
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_PAUSED_TO_READY">
<parameter_description> state change from PAUSED to READY.
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
Sinks unblock any waits in the preroll.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Elements unblock any waits on devices
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Chain or get_range functions return %GST_FLOW_FLUSHING.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
The element pads are deactivated so that streaming becomes impossible and
all streaming threads are stopped.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
The sink forgets all negotiated formats
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Elements remove all sometimes pads
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_READY_TO_NULL">
<parameter_description> state change from READY to NULL.
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
Elements close devices
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Elements reset any internal state.
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstStateChangeReturn">
<description>
The possible return values from a state change function such as 
gst_element_set_state(). Only @GST_STATE_CHANGE_FAILURE is a real failure.

</description>
<parameters>
<parameter name="GST_STATE_CHANGE_FAILURE">
<parameter_description> the state change failed
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_SUCCESS">
<parameter_description> the state change succeeded
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_ASYNC">
<parameter_description> the state change will happen asynchronously
</parameter_description>
</parameter>
<parameter name="GST_STATE_CHANGE_NO_PREROLL">
<parameter_description> the state change succeeded but the element
cannot produce data in %GST_STATE_PAUSED.
This typically happens with live sources.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstStreamError">
<description>
Stream errors are for anything related to the stream being processed:
format errors, media type errors, ...
They're typically used by decoders, demuxers, converters, ...

</description>
<parameters>
<parameter name="GST_STREAM_ERROR_FAILED">
<parameter_description> a general error which doesn't fit in any other
category.  Make sure you add a custom message to the error call.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_TOO_LAZY">
<parameter_description> do not use this except as a placeholder for
deciding where to go while developing code.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_NOT_IMPLEMENTED">
<parameter_description> use this when you do not want to implement
this functionality yet.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_TYPE_NOT_FOUND">
<parameter_description> used when the element doesn't know the
stream's type.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_WRONG_TYPE">
<parameter_description> used when the element doesn't handle this type
of stream.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_CODEC_NOT_FOUND">
<parameter_description> used when there's no codec to handle the
stream's type.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_DECODE">
<parameter_description> used when decoding fails.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_ENCODE">
<parameter_description> used when encoding fails.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_DEMUX">
<parameter_description> used when demuxing fails.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_MUX">
<parameter_description> used when muxing fails.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_FORMAT">
<parameter_description> used when the stream is of the wrong format
(for example, wrong caps).
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_DECRYPT">
<parameter_description> used when the stream is encrypted and can't be
decrypted because this is not supported by the element.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_DECRYPT_NOKEY">
<parameter_description> used when the stream is encrypted and
can't be decrypted because no suitable key is available.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_ERROR_NUM_ERRORS">
<parameter_description> the number of stream error types.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstStreamFlags">
<description>

</description>
<parameters>
<parameter name="GST_STREAM_FLAG_NONE">
<parameter_description> This stream has no special attributes
</parameter_description>
</parameter>
<parameter name="GST_STREAM_FLAG_SPARSE">
<parameter_description> This stream is a sparse stream (e.g. a subtitle
stream), data may flow only in irregular intervals with large gaps in
between.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_FLAG_SELECT">
<parameter_description> This stream should be selected by default. This
flag may be used by demuxers to signal that a stream should be selected
by default in a playback scenario.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_FLAG_UNSELECT">
<parameter_description> This stream should not be selected by default.
This flag may be used by demuxers to signal that a stream should not
be selected by default in a playback scenario, but only if explicitly
selected by the user (e.g. an audio track for the hard of hearing or
a director's commentary track).
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstStreamStatusType">
<description>
The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
application of new streaming threads and their status.

</description>
<parameters>
<parameter name="GST_STREAM_STATUS_TYPE_CREATE">
<parameter_description> A new thread need to be created.
</parameter_description>
</parameter>
<parameter name="GST_STREAM_STATUS_TYPE_ENTER">
<parameter_description> a thread entered its loop function
</parameter_description>
</parameter>
<parameter name="GST_STREAM_STATUS_TYPE_LEAVE">
<parameter_description> a thread left its loop function
</parameter_description>
</parameter>
<parameter name="GST_STREAM_STATUS_TYPE_DESTROY">
<parameter_description> a thread is destroyed
</parameter_description>
</parameter>
<parameter name="GST_STREAM_STATUS_TYPE_START">
<parameter_description> a thread is started
</parameter_description>
</parameter>
<parameter name="GST_STREAM_STATUS_TYPE_PAUSE">
<parameter_description> a thread is paused
</parameter_description>
</parameter>
<parameter name="GST_STREAM_STATUS_TYPE_STOP">
<parameter_description> a thread is stopped
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstStreamVolumeFormat">
<description>
Different representations of a stream volume. gst_stream_volume_convert_volume()
allows to convert between the different representations.

Formulas to convert from a linear to a cubic or dB volume are
cbrt(val) and 20 * log10 (val).

</description>
<parameters>
<parameter name="GST_STREAM_VOLUME_FORMAT_LINEAR">
<parameter_description> Linear scale factor, 1.0 = 100%
</parameter_description>
</parameter>
<parameter name="GST_STREAM_VOLUME_FORMAT_CUBIC">
<parameter_description> Cubic volume scale
</parameter_description>
</parameter>
<parameter name="GST_STREAM_VOLUME_FORMAT_DB">
<parameter_description> Logarithmic volume scale (dB, amplitude not power)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstStructureChangeType">
<description>
The type of a %GST_MESSAGE_STRUCTURE_CHANGE.

</description>
<parameters>
<parameter name="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK">
<parameter_description> Pad linking is starting or done.
</parameter_description>
</parameter>
<parameter name="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK">
<parameter_description> Pad unlinking is starting or done.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTagDemuxResult">
<description>
Result values from the parse_tag virtual function.

</description>
<parameters>
<parameter name="GST_TAG_DEMUX_RESULT_BROKEN_TAG">
<parameter_description> cannot parse tag, just skip it
</parameter_description>
</parameter>
<parameter name="GST_TAG_DEMUX_RESULT_AGAIN">
<parameter_description> call again with less or more data
</parameter_description>
</parameter>
<parameter name="GST_TAG_DEMUX_RESULT_OK">
<parameter_description> parsed tag successfully
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTagFlag">
<description>
Extra tag flags used when registering tags.

</description>
<parameters>
<parameter name="GST_TAG_FLAG_UNDEFINED">
<parameter_description> undefined flag
</parameter_description>
</parameter>
<parameter name="GST_TAG_FLAG_META">
<parameter_description> tag is meta data
</parameter_description>
</parameter>
<parameter name="GST_TAG_FLAG_ENCODED">
<parameter_description> tag is encoded
</parameter_description>
</parameter>
<parameter name="GST_TAG_FLAG_DECODED">
<parameter_description> tag is decoded
</parameter_description>
</parameter>
<parameter name="GST_TAG_FLAG_COUNT">
<parameter_description> number of tag flags
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTagImageType">
<description>
Type of image contained in an image tag (specified as &quot;image-type&quot; field in
the info structure in the image's #GstSample)

</description>
<parameters>
<parameter name="GST_TAG_IMAGE_TYPE_NONE">
<parameter_description> No image type. Can be used to
tell functions such as gst_tag_image_data_to_image_sample() that no
image type should be set.
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_UNDEFINED">
<parameter_description> Undefined/other image type
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_FRONT_COVER">
<parameter_description> Cover (front)
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_BACK_COVER">
<parameter_description> Cover (back)
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_LEAFLET_PAGE">
<parameter_description> Leaflet page
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_MEDIUM">
<parameter_description> Medium (e.g. label side of CD)
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_LEAD_ARTIST">
<parameter_description> Lead artist/lead performer/soloist
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_ARTIST">
<parameter_description> Artist/performer
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_CONDUCTOR">
<parameter_description> Conductor
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA">
<parameter_description> Band/orchestra
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_COMPOSER">
<parameter_description> Composer
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_LYRICIST">
<parameter_description> Lyricist/text writer
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_RECORDING_LOCATION">
<parameter_description> Recording location
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_DURING_RECORDING">
<parameter_description> During recording
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE">
<parameter_description> During performance
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE">
<parameter_description> Movie/video screen capture
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_FISH">
<parameter_description> A fish as funny as the ID3v2 spec
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_ILLUSTRATION">
<parameter_description> Illustration
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO">
<parameter_description> Band/artist logotype
</parameter_description>
</parameter>
<parameter name="GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO">
<parameter_description> Publisher/studio logotype
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTagLicenseFlags">
<description>
See http://creativecommons.org/ns for more information.

</description>
<parameters>
<parameter name="GST_TAG_LICENSE_PERMITS_REPRODUCTION">
<parameter_description> making multiple copies
is allowed
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_PERMITS_DISTRIBUTION">
<parameter_description> distribution, public display
and public performance are allowed
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS">
<parameter_description> distribution of derivative
works is allowed
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_PERMITS_SHARING">
<parameter_description> commercial derivatives are allowed,
but only non-commercial distribution is allowed
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_REQUIRES_NOTICE">
<parameter_description> copyright and license notices
must be kept intact
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_REQUIRES_ATTRIBUTION">
<parameter_description> credit must be given to
copyright holder and/or author
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE">
<parameter_description> derivative works must be
licensed under the same terms or compatible terms as the original work
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_REQUIRES_SOURCE_CODE">
<parameter_description> source code (the preferred
form for making modifications) must be provided when exercising some
rights granted by the license
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_REQUIRES_COPYLEFT">
<parameter_description> derivative and combined works
must be licensed under specified terms, similar to those of the original
work
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT">
<parameter_description> derivative works must be
licensed under specified terms, with at least the same conditions as
the original work; combinations with the work may be licensed under
different terms
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE">
<parameter_description> exercising rights for
commercial purposes is prohibited
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE">
<parameter_description> use in a
non-developing country is prohibited
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE">
<parameter_description> this license was created
by the Creative Commons project
</parameter_description>
</parameter>
<parameter name="GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE">
<parameter_description> this license was
created by the Free Software Foundation (FSF)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTagMergeMode">
<description>
The different tag merging modes are basically replace, overwrite and append,
but they can be seen from two directions. Given two taglists: (A) the tags
already in the element and (B) the ones that are supplied to the element (
e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
%GST_EVENT_TAG), how are these tags merged?
In the table below this is shown for the cases that a tag exists in the list
(A) or does not exists (!A) and combinations thereof.

&lt;table frame=&quot;all&quot; colsep=&quot;1&quot; rowsep=&quot;1&quot;&gt;
&lt;title&gt;merge mode&lt;/title&gt;
&lt;tgroup cols='5' align='left'&gt;
&lt;thead&gt;
&lt;row&gt;
&lt;entry&gt;merge mode&lt;/entry&gt;
&lt;entry&gt;A + B&lt;/entry&gt;
&lt;entry&gt;A + !B&lt;/entry&gt;
&lt;entry&gt;!A + B&lt;/entry&gt;
&lt;entry&gt;!A + !B&lt;/entry&gt;
&lt;/row&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;row&gt;
&lt;entry&gt;REPLACE_ALL&lt;/entry&gt;
&lt;entry&gt;B&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;entry&gt;B&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;REPLACE&lt;/entry&gt;
&lt;entry&gt;B&lt;/entry&gt;
&lt;entry&gt;A&lt;/entry&gt;
&lt;entry&gt;B&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;APPEND&lt;/entry&gt;
&lt;entry&gt;A, B&lt;/entry&gt;
&lt;entry&gt;A&lt;/entry&gt;
&lt;entry&gt;B&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;PREPEND&lt;/entry&gt;
&lt;entry&gt;B, A&lt;/entry&gt;
&lt;entry&gt;A&lt;/entry&gt;
&lt;entry&gt;B&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;KEEP&lt;/entry&gt;
&lt;entry&gt;A&lt;/entry&gt;
&lt;entry&gt;A&lt;/entry&gt;
&lt;entry&gt;B&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;KEEP_ALL&lt;/entry&gt;
&lt;entry&gt;A&lt;/entry&gt;
&lt;entry&gt;A&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;entry&gt;-&lt;/entry&gt;
&lt;/row&gt;
&lt;/tbody&gt;
&lt;/tgroup&gt;
&lt;/table&gt;

</description>
<parameters>
<parameter name="GST_TAG_MERGE_UNDEFINED">
<parameter_description> undefined merge mode
</parameter_description>
</parameter>
<parameter name="GST_TAG_MERGE_REPLACE_ALL">
<parameter_description> replace all tags (clear list and append)
</parameter_description>
</parameter>
<parameter name="GST_TAG_MERGE_REPLACE">
<parameter_description> replace tags
</parameter_description>
</parameter>
<parameter name="GST_TAG_MERGE_APPEND">
<parameter_description> append tags
</parameter_description>
</parameter>
<parameter name="GST_TAG_MERGE_PREPEND">
<parameter_description> prepend tags
</parameter_description>
</parameter>
<parameter name="GST_TAG_MERGE_KEEP">
<parameter_description> keep existing tags
</parameter_description>
</parameter>
<parameter name="GST_TAG_MERGE_KEEP_ALL">
<parameter_description> keep all existing tags
</parameter_description>
</parameter>
<parameter name="GST_TAG_MERGE_COUNT">
<parameter_description> the number of merge modes
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTagScope">
<description>
GstTagScope specifies if a taglist applies to the complete
medium or only to one single stream.

</description>
<parameters>
<parameter name="GST_TAG_SCOPE_STREAM">
<parameter_description> tags specific to this single stream
</parameter_description>
</parameter>
<parameter name="GST_TAG_SCOPE_GLOBAL">
<parameter_description> global tags for the complete medium
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTaskState">
<description>
The different states a task can be in

</description>
<parameters>
<parameter name="GST_TASK_STARTED">
<parameter_description> the task is started and running
</parameter_description>
</parameter>
<parameter name="GST_TASK_STOPPED">
<parameter_description> the task is stopped
</parameter_description>
</parameter>
<parameter name="GST_TASK_PAUSED">
<parameter_description> the task is paused
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTocEntryType">
<description>
The different types of TOC entries (see #GstTocEntry).

There are two types of TOC entries: alternatives or parts in a sequence.

</description>
<parameters>
<parameter name="GST_TOC_ENTRY_TYPE_ANGLE">
<parameter_description> entry is an angle (i.e. an alternative)
</parameter_description>
</parameter>
<parameter name="GST_TOC_ENTRY_TYPE_VERSION">
<parameter_description> entry is a version (i.e. alternative)
</parameter_description>
</parameter>
<parameter name="GST_TOC_ENTRY_TYPE_EDITION">
<parameter_description> entry is an edition (i.e. alternative)
</parameter_description>
</parameter>
<parameter name="GST_TOC_ENTRY_TYPE_INVALID">
<parameter_description> invalid entry type value
</parameter_description>
</parameter>
<parameter name="GST_TOC_ENTRY_TYPE_TITLE">
<parameter_description> entry is a title (i.e. a part of a sequence)
</parameter_description>
</parameter>
<parameter name="GST_TOC_ENTRY_TYPE_TRACK">
<parameter_description> entry is a track (i.e. a part of a sequence)
</parameter_description>
</parameter>
<parameter name="GST_TOC_ENTRY_TYPE_CHAPTER">
<parameter_description> entry is a chapter (i.e. a part of a sequence)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTocScope">
<description>
The scope of a TOC.

</description>
<parameters>
<parameter name="GST_TOC_SCOPE_GLOBAL">
<parameter_description> global TOC representing all selectable options
(this is what applications are usually interested in)
</parameter_description>
</parameter>
<parameter name="GST_TOC_SCOPE_CURRENT">
<parameter_description> TOC for the currently active/selected stream
(this is a TOC representing the current stream from start to EOS,
and is what a TOC writer / muxer is usually interested in; it will
usually be a subset of the global TOC, e.g. just the chapters of
the current title, or the chapters selected for playback from the
current title)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstTypeFindProbability">
<description>
The probability of the typefind function. Higher values have more certainty
in doing a reliable typefind.

</description>
<parameters>
<parameter name="GST_TYPE_FIND_NONE">
<parameter_description> type undetected.
</parameter_description>
</parameter>
<parameter name="GST_TYPE_FIND_MINIMUM">
<parameter_description> unlikely typefind.
</parameter_description>
</parameter>
<parameter name="GST_TYPE_FIND_POSSIBLE">
<parameter_description> possible type detected.
</parameter_description>
</parameter>
<parameter name="GST_TYPE_FIND_LIKELY">
<parameter_description> likely a type was detected.
</parameter_description>
</parameter>
<parameter name="GST_TYPE_FIND_NEARLY_CERTAIN">
<parameter_description> nearly certain that a type was detected.
</parameter_description>
</parameter>
<parameter name="GST_TYPE_FIND_MAXIMUM">
<parameter_description> very certain a type was detected.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstURIError">
<description>
Different URI-related errors that can occur.

</description>
<parameters>
<parameter name="GST_URI_ERROR_UNSUPPORTED_PROTOCOL">
<parameter_description> The protocol is not supported
</parameter_description>
</parameter>
<parameter name="GST_URI_ERROR_BAD_URI">
<parameter_description> There was a problem with the URI
</parameter_description>
</parameter>
<parameter name="GST_URI_ERROR_BAD_STATE">
<parameter_description> Could not set or change the URI because the
URI handler was in a state where that is not possible or not permitted
</parameter_description>
</parameter>
<parameter name="GST_URI_ERROR_BAD_REFERENCE">
<parameter_description> There was a problem with the entity that
the URI references
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstURIType">
<description>
The different types of URI direction.

</description>
<parameters>
<parameter name="GST_URI_UNKNOWN">
<parameter_description> The URI direction is unknown
</parameter_description>
</parameter>
<parameter name="GST_URI_SINK">
<parameter_description> The URI is a consumer.
</parameter_description>
</parameter>
<parameter name="GST_URI_SRC">
<parameter_description> The URI is a producer.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoBufferFlags">
<description>
Additional video buffer flags.

</description>
<parameters>
<parameter name="GST_VIDEO_BUFFER_FLAG_INTERLACED">
<parameter_description>  If the #GstBuffer is interlaced. In mixed
interlace-mode, this flags specifies if the frame is
interlaced or progressive.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_BUFFER_FLAG_TFF">
<parameter_description>         If the #GstBuffer is interlaced, then the first field
in the video frame is the top field.  If unset, the
bottom field is first.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_BUFFER_FLAG_RFF">
<parameter_description>         If the #GstBuffer is interlaced, then the first field
(as defined by the %GST_VIDEO_BUFFER_TFF flag setting)
is repeated.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_BUFFER_FLAG_ONEFIELD">
<parameter_description>    If the #GstBuffer is interlaced, then only the
first field (as defined by the %GST_VIDEO_BUFFER_TFF
flag setting) is to be displayed.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoChromaFlags">
<description>
Extra flags that influence the result from gst_video_chroma_resample_new().

</description>
<parameters>
<parameter name="GST_VIDEO_CHROMA_FLAG_NONE">
<parameter_description> no flags
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_FLAG_INTERLACED">
<parameter_description> the input is interlaced
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoChromaMethod">
<description>
Different subsampling and upsampling methods

</description>
<parameters>
<parameter name="GST_VIDEO_CHROMA_METHOD_NEAREST">
<parameter_description> Duplicates the chroma samples when
upsampling and drops when subsampling
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_METHOD_LINEAR">
<parameter_description> Uses linear interpolation to reconstruct
missing chroma and averaging to subsample
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoChromaSite">
<description>
Various Chroma sitings.

</description>
<parameters>
<parameter name="GST_VIDEO_CHROMA_SITE_UNKNOWN">
<parameter_description> unknown cositing
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_NONE">
<parameter_description> no cositing
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_H_COSITED">
<parameter_description> chroma is horizontally cosited
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_V_COSITED">
<parameter_description> chroma is vertically cosited
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_ALT_LINE">
<parameter_description> choma samples are sited on alternate lines
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_COSITED">
<parameter_description> chroma samples cosited with luma samples
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_JPEG">
<parameter_description> jpeg style cositing, also for mpeg1 and mjpeg
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_MPEG2">
<parameter_description> mpeg2 style cositing
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CHROMA_SITE_DV">
<parameter_description> DV style cositing
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoCodecFrameFlags">
<description>
Flags for #GstVideoCodecFrame

</description>
<parameters>
<parameter name="GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY">
<parameter_description> is the frame only meant to be decoded
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT">
<parameter_description> is the frame a synchronization point (keyframe)
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME">
<parameter_description> should the output frame be made a keyframe
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS">
<parameter_description> should the encoder output stream headers
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoColorMatrix">
<description>
The color matrix is used to convert between Y'PbPr and
non-linear RGB (R'G'B')

</description>
<parameters>
<parameter name="GST_VIDEO_COLOR_MATRIX_UNKNOWN">
<parameter_description> unknown matrix
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_MATRIX_RGB">
<parameter_description> identity matrix
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_MATRIX_FCC">
<parameter_description> FCC color matrix
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_MATRIX_BT709">
<parameter_description> ITU-R BT.709 color matrix
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_MATRIX_BT601">
<parameter_description> ITU-R BT.601 color matrix
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_MATRIX_SMPTE240M">
<parameter_description> SMPTE 240M color matrix
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoColorPrimaries">
<description>
The color primaries define the how to transform linear RGB values to and from
the CIE XYZ colorspace.

</description>
<parameters>
<parameter name="GST_VIDEO_COLOR_PRIMARIES_UNKNOWN">
<parameter_description> unknown color primaries
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_PRIMARIES_BT709">
<parameter_description> BT709 primaries
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_PRIMARIES_BT470M">
<parameter_description> BT470M primaries
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_PRIMARIES_BT470BG">
<parameter_description> BT470BG primaries
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_PRIMARIES_SMPTE170M">
<parameter_description> SMPTE170M primaries
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_PRIMARIES_SMPTE240M">
<parameter_description> SMPTE240M primaries
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_PRIMARIES_FILM">
<parameter_description> Generic film
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoColorRange">
<description>
Possible color range values. These constants are defined for 8 bit color
values and can be scaled for other bit depths.

</description>
<parameters>
<parameter name="GST_VIDEO_COLOR_RANGE_UNKNOWN">
<parameter_description> unknown range
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_RANGE_0_255">
<parameter_description> [0..255] for 8 bit components
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_COLOR_RANGE_16_235">
<parameter_description> [16..235] for 8 bit components. Chroma has
[16..240] range.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoFlags">
<description>
Extra video flags

</description>
<parameters>
<parameter name="GST_VIDEO_FLAG_NONE">
<parameter_description> no flags
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FLAG_VARIABLE_FPS">
<parameter_description> a variable fps is selected, fps_n and fps_d
denote the maximum fps of the video
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA">
<parameter_description> Each color has been scaled by the alpha
value.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoFormatFlags">
<description>
The different video flags that a format info can have.

</description>
<parameters>
<parameter name="GST_VIDEO_FORMAT_FLAG_YUV">
<parameter_description> The video format is YUV, components are numbered
0=Y, 1=U, 2=V.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FORMAT_FLAG_RGB">
<parameter_description> The video format is RGB, components are numbered
0=R, 1=G, 2=B.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FORMAT_FLAG_GRAY">
<parameter_description> The video is gray, there is one gray component
with index 0.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FORMAT_FLAG_ALPHA">
<parameter_description> The video format has an alpha components with
the number 3.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FORMAT_FLAG_LE">
<parameter_description> The video format has data stored in little
endianness.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FORMAT_FLAG_PALETTE">
<parameter_description> The video format has a palette. The palette
is stored in the second plane and indexes are stored in the first plane.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FORMAT_FLAG_COMPLEX">
<parameter_description> The video format has a complex layout that
can't be described with the usual information in the #GstVideoFormatInfo.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FORMAT_FLAG_UNPACK">
<parameter_description> This format can be used in a
#GstVideoFormatUnpack and #GstVideoFormatPack function.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoFrameFlags">
<description>
Extra video frame flags

</description>
<parameters>
<parameter name="GST_VIDEO_FRAME_FLAG_NONE">
<parameter_description> no flags
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FRAME_FLAG_INTERLACED">
<parameter_description> The video frame is interlaced. In mixed
interlace-mode, this flags specifies if the frame is interlace or
progressive.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FRAME_FLAG_TFF">
<parameter_description> The video frame has the top field first
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FRAME_FLAG_RFF">
<parameter_description> The video frame has the repeat flag
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_FRAME_FLAG_ONEFIELD">
<parameter_description> The video frame has one field
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoGLTextureType">
<description>
The GL texture type.

</description>
<parameters>
<parameter name="GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE">
<parameter_description> Luminance texture, GL_LUMINANCE
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA">
<parameter_description> Luminance-alpha texture, GL_LUMINANCE_ALPHA
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_GL_TEXTURE_TYPE_RGB16">
<parameter_description> RGB 565 texture, GL_RGB
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_GL_TEXTURE_TYPE_RGB">
<parameter_description> RGB texture, GL_RGB
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_GL_TEXTURE_TYPE_RGBA">
<parameter_description> RGBA texture, GL_RGBA
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_GL_TEXTURE_TYPE_R">
<parameter_description> R texture, GL_RED_EXT
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_GL_TEXTURE_TYPE_RG">
<parameter_description> RG texture, GL_RG_EXT
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoInterlaceMode">
<description>
The possible values of the #GstVideoInterlaceMode describing the interlace
mode of the stream.

</description>
<parameters>
<parameter name="GST_VIDEO_INTERLACE_MODE_PROGRESSIVE">
<parameter_description> all frames are progressive
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_INTERLACE_MODE_INTERLEAVED">
<parameter_description> 2 fields are interleaved in one video
frame. Extra buffer flags describe the field order.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_INTERLACE_MODE_MIXED">
<parameter_description> frames contains both interlaced and
progressive video, the buffer flags describe the frame and fields.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_INTERLACE_MODE_FIELDS">
<parameter_description> 2 fields are stored in one buffer, use the
frame ID to get access to the required field. For multiview (the
'views' property &gt; 1) the fields of view N can be found at frame ID
(N * 2) and (N * 2) + 1.
Each field has only half the amount of lines as noted in the
height property. This mode requires multiple GstVideoMeta metadata
to describe the fields.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoOverlayFormatFlags">
<description>
Overlay format flags.

</description>
<parameters>
<parameter name="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE">
<parameter_description> no flags
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA">
<parameter_description> RGB are premultiplied by A/255.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA">
<parameter_description> a global-alpha value != 1 is set.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoPackFlags">
<description>
The different flags that can be used when packing and unpacking.

</description>
<parameters>
<parameter name="GST_VIDEO_PACK_FLAG_NONE">
<parameter_description> No flag
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE">
<parameter_description> When the source has a smaller depth
than the target format, set the least significant bits of the target
to 0. This is likely sightly faster but less accurate. When this flag
is not specified, the most significant bits of the source are duplicated
in the least significant bits of the destination.
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_PACK_FLAG_INTERLACED">
<parameter_description> The source is interlaced. The unpacked
format will be interlaced as well with each line containing
information from alternating fields. (Since 1.2)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GstVideoTransferFunction">
<description>
The video transfer function defines the formula for converting between
non-linear RGB (R'G'B') and linear RGB

</description>
<parameters>
<parameter name="GST_VIDEO_TRANSFER_UNKNOWN">
<parameter_description> unknown transfer function
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_GAMMA10">
<parameter_description> linear RGB, gamma 1.0 curve
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_GAMMA18">
<parameter_description> Gamma 1.8 curve
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_GAMMA20">
<parameter_description> Gamma 2.0 curve
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_GAMMA22">
<parameter_description> Gamma 2.2 curve
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_BT709">
<parameter_description> Gamma 2.2 curve with a linear segment in the lower
range
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_SMPTE240M">
<parameter_description> Gamma 2.2 curve with a linear segment in the
lower range
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_SRGB">
<parameter_description> Gamma 2.4 curve with a linear segment in the lower
range
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_GAMMA28">
<parameter_description> Gamma 2.8 curve
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_LOG100">
<parameter_description> Logarithmic transfer characteristic
100:1 range
</parameter_description>
</parameter>
<parameter name="GST_VIDEO_TRANSFER_LOG316">
<parameter_description> Logarithmic transfer characteristic
316.22777:1 range
</parameter_description>
</parameter>
</parameters>
</enum>

<function name="assert_equals_float">
<description>
This macro checks that @a and @b are (almost) equal and aborts if this
is not the case, printing both expressions and the values they evaluated
to. This macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #gdouble or #gfloat value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gdouble or #gfloat value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_int">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to. This
macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_int64">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to. This
macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_int64_hex">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to in
hexadecimal format. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_int_hex">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to in
hexadecimal format. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_pointer">
<description>
This macro checks that @a and @b are equal and aborts if this
is not the case, printing both expressions and the values they
evaluated to. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a pointer value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a pointer value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_string">
<description>
This macro checks that @a and @b are equal (as per strcmp) and aborts if
this is not the case, printing both expressions and the values they
evaluated to. This macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a string literal or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a string literal or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_uint64">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to. This
macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #guint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #guint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="assert_equals_uint64_hex">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to in
hexadecimal format. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a #guint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #guint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_float">
<description>
This macro checks that @a and @b are (almost) equal and aborts if this
is not the case, printing both expressions and the values they evaluated
to. This macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #gdouble or #gfloat value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gdouble or #gfloat value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_int">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to. This
macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_int64">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to. This
macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_int64_hex">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to in
hexadecimal format. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_int_hex">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to in
hexadecimal format. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_pointer">
<description>
This macro checks that @a and @b are equal and aborts if this
is not the case, printing both expressions and the values they
evaluated to. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a pointer value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a pointer value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_string">
<description>
This macro checks that @a and @b are equal (as per strcmp) and aborts if
this is not the case, printing both expressions and the values they
evaluated to. This macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a string literal or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a string literal or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_uint64">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to. This
macro is for use in unit tests.

</description>
<parameters>
<parameter name="a">
<parameter_description> a #guint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #guint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="fail_unless_equals_uint64_hex">
<description>
This macro checks that @a and @b are equal and aborts if this is not the
case, printing both expressions and the values they evaluated to in
hexadecimal format. This macro is for use in unit tests.


</description>
<parameters>
<parameter name="a">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #gint64 value or expression
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_adapter_available">
<description>
Gets the maximum amount of bytes available, that is it returns the maximum
value that can be supplied to gst_adapter_map() without that function
returning NULL.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
</parameters>
<return> number of bytes available in @adapter
</return>
</function>

<function name="gst_adapter_available_fast">
<description>
Gets the maximum number of bytes that are immediately available without
requiring any expensive operations (like copying the data into a
temporary buffer).


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
</parameters>
<return> number of bytes that are available in @adapter without expensive
operations
</return>
</function>

<function name="gst_adapter_clear">
<description>
Removes all buffers from @adapter.

</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_adapter_copy">
<description>
Copies @size bytes of data starting at @offset out of the buffers
contained in @GstAdapter into an array @dest provided by the caller.

The array @dest should be large enough to contain @size bytes.
The user should check that the adapter has (@offset + @size) bytes
available before calling this function.

</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description>
the memory to copy into
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the bytes offset in the adapter to start from
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the number of bytes to copy
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_adapter_flush">
<description>
Flushes the first @flush bytes in the @adapter. The caller must ensure that
at least this many bytes are available.

See also: gst_adapter_map(), gst_adapter_unmap()

</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> the number of bytes to flush
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_adapter_map">
<description>
Gets the first @size bytes stored in the @adapter. The returned pointer is
valid until the next function is called on the adapter.

Note that setting the returned pointer as the data of a #GstBuffer is
incorrect for general-purpose plugins. The reason is that if a downstream
element stores the buffer so that it has access to it outside of the bounds
of its chain function, the buffer will have an invalid data pointer after
your element flushes the bytes. In that case you should use
gst_adapter_take(), which returns a freshly-allocated buffer that you can set
as #GstBuffer memory or the potentially more performant
gst_adapter_take_buffer().


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the number of bytes to map/peek
</parameter_description>
</parameter>
</parameters>
<return>
a pointer to the first @size bytes of data, or NULL
</return>
</function>

<function name="gst_adapter_masked_scan_uint32">
<description>
Scan for pattern @pattern with applied mask @mask in the adapter data,
starting from offset @offset.

The bytes in @pattern and @mask are interpreted left-to-right, regardless
of endianness.  All four bytes of the pattern must be present in the
adapter for it to match, even if the first or last bytes are masked out.

It is an error to call this function without making sure that there is
enough data (offset+size bytes) in the adapter.

This function calls gst_adapter_masked_scan_uint32_peek() passing NULL
for value.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="mask">
<parameter_description> mask to apply to data before matching against @pattern
</parameter_description>
</parameter>
<parameter name="pattern">
<parameter_description> pattern to match (after mask is applied)
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset into the adapter data from which to start scanning, returns
the last scanned position.
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> number of bytes to scan from offset
</parameter_description>
</parameter>
</parameters>
<return> offset of the first match, or -1 if no match was found.

Example:
&lt;programlisting&gt;
// Assume the adapter contains 0x00 0x01 0x02 ... 0xfe 0xff

gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 0, 256);
// -&gt; returns 0
gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 1, 255);
// -&gt; returns -1
gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x01020304, 1, 255);
// -&gt; returns 1
gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0001, 0, 256);
// -&gt; returns -1
gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0203, 0, 256);
// -&gt; returns 0
gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 256);
// -&gt; returns 2
gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 4);
// -&gt; returns -1
&lt;/programlisting&gt;
</return>
</function>

<function name="gst_adapter_masked_scan_uint32_peek">
<description>
Scan for pattern @pattern with applied mask @mask in the adapter data,
starting from offset @offset.  If a match is found, the value that matched
is returned through @value, otherwise @value is left untouched.

The bytes in @pattern and @mask are interpreted left-to-right, regardless
of endianness.  All four bytes of the pattern must be present in the
adapter for it to match, even if the first or last bytes are masked out.

It is an error to call this function without making sure that there is
enough data (offset+size bytes) in the adapter.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="mask">
<parameter_description> mask to apply to data before matching against @pattern
</parameter_description>
</parameter>
<parameter name="pattern">
<parameter_description> pattern to match (after mask is applied)
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset into the adapter data from which to start scanning, returns
the last scanned position.
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> number of bytes to scan from offset
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> pointer to uint32 to return matching data
</parameter_description>
</parameter>
</parameters>
<return> offset of the first match, or -1 if no match was found.
</return>
</function>

<function name="gst_adapter_new">
<description>
Creates a new #GstAdapter. Free with g_object_unref().


</description>
<parameters>
</parameters>
<return> a new #GstAdapter
</return>
</function>

<function name="gst_adapter_prev_dts">
<description>
Get the dts that was before the current byte in the adapter. When
@distance is given, the amount of bytes between the dts and the current
position is returned.

The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
the adapter is first created or when it is cleared. This also means that before
the first byte with a dts is removed from the adapter, the dts
and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="distance">
<parameter_description> pointer to location for distance, or NULL
</parameter_description>
</parameter>
</parameters>
<return> The previously seen dts.
</return>
</function>

<function name="gst_adapter_prev_dts_at_offset">
<description>
Get the dts that was before the byte at offset @offset in the adapter. When
@distance is given, the amount of bytes between the dts and the current
position is returned.

The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
the adapter is first created or when it is cleared. This also means that before
the first byte with a dts is removed from the adapter, the dts
and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset in the adapter at which to get timestamp
</parameter_description>
</parameter>
<parameter name="distance">
<parameter_description> pointer to location for distance, or NULL
</parameter_description>
</parameter>
</parameters>
<return> The previously seen dts at given offset.
</return>
</function>

<function name="gst_adapter_prev_pts">
<description>
Get the pts that was before the current byte in the adapter. When
@distance is given, the amount of bytes between the pts and the current
position is returned.

The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
the adapter is first created or when it is cleared. This also means that before
the first byte with a pts is removed from the adapter, the pts
and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="distance">
<parameter_description> pointer to location for distance, or NULL
</parameter_description>
</parameter>
</parameters>
<return> The previously seen pts.
</return>
</function>

<function name="gst_adapter_prev_pts_at_offset">
<description>
Get the pts that was before the byte at offset @offset in the adapter. When
@distance is given, the amount of bytes between the pts and the current
position is returned.

The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
the adapter is first created or when it is cleared. This also means that before
the first byte with a pts is removed from the adapter, the pts
and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset in the adapter at which to get timestamp
</parameter_description>
</parameter>
<parameter name="distance">
<parameter_description> pointer to location for distance, or NULL
</parameter_description>
</parameter>
</parameters>
<return> The previously seen pts at given offset.
</return>
</function>

<function name="gst_adapter_push">
<description>
Adds the data from @buf to the data stored inside @adapter and takes
ownership of the buffer.

</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> a #GstBuffer to add to queue in the adapter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_adapter_take">
<description>
Returns a freshly allocated buffer containing the first @nbytes bytes of the
@adapter. The returned bytes will be flushed from the adapter.

Caller owns returned value. g_free after usage.

Free-function: g_free


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="nbytes">
<parameter_description> the number of bytes to take
</parameter_description>
</parameter>
</parameters>
<return>
oven-fresh hot data, or #NULL if @nbytes bytes are not available
</return>
</function>

<function name="gst_adapter_take_buffer">
<description>
Returns a #GstBuffer containing the first @nbytes bytes of the
@adapter. The returned bytes will be flushed from the adapter.
This function is potentially more performant than gst_adapter_take()
since it can reuse the memory in pushed buffers by subbuffering
or merging.

Note that no assumptions should be made as to whether certain buffer
flags such as the DISCONT flag are set on the returned buffer, or not.
The caller needs to explicitly set or unset flags that should be set or
unset.

Caller owns a reference to the returned buffer. gst_buffer_unref() after
usage.

Free-function: gst_buffer_unref


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="nbytes">
<parameter_description> the number of bytes to take
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer containing the first @nbytes of
the adapter, or #NULL if @nbytes bytes are not available.
gst_buffer_unref() when no longer needed.
</return>
</function>

<function name="gst_adapter_take_list">
<description>
Returns a #GList of buffers containing the first @nbytes bytes of the
@adapter. The returned bytes will be flushed from the adapter.
When the caller can deal with individual buffers, this function is more
performant because no memory should be copied.

Caller owns returned list and contained buffers. gst_buffer_unref() each
buffer in the list before freeing the list after usage.


</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
<parameter name="nbytes">
<parameter_description> the number of bytes to take
</parameter_description>
</parameter>
</parameters>
<return> a #GList of buffers
containing the first @nbytes of the adapter, or #NULL if @nbytes bytes
are not available
</return>
</function>

<function name="gst_adapter_unmap">
<description>
Releases the memory obtained with the last gst_adapter_map().

</description>
<parameters>
<parameter name="adapter">
<parameter_description> a #GstAdapter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_alloc_trace_free">
<description>
Trace a memory free operation

</description>
<parameters>
<parameter name="trace">
<parameter_description> The tracer to use
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> The memory that is freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_alloc_trace_new">
<description>
Use the tracer to trace a new memory allocation

</description>
<parameters>
<parameter name="trace">
<parameter_description> The tracer to use
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> The memory allocated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_alloc_trace_register">
<description>
Register a new alloc tracer with the given name

</description>
<parameters>
<parameter name="name">
<parameter_description> The name of the tracer object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_allocation_params_copy">
<description>
Create a copy of @params.

Free-function: gst_allocation_params_free


</description>
<parameters>
<parameter name="params">
<parameter_description> a #GstAllocationParams
</parameter_description>
</parameter>
</parameters>
<return> a new ##GstAllocationParams, free with
gst_allocation_params_free().
</return>
</function>

<function name="gst_allocation_params_free">
<description>
Free @params

</description>
<parameters>
<parameter name="params">
<parameter_description> a #GstAllocationParams
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_allocation_params_init">
<description>
Initialize @params to its default values

</description>
<parameters>
<parameter name="params">
<parameter_description> a #GstAllocationParams
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_allocator_alloc">
<description>
Use @allocator to allocate a new memory block with memory that is at least
@size big.

The optional @params can specify the prefix and padding for the memory. If
NULL is passed, no flags, no extra prefix/padding and a default alignment is
used.

The prefix/padding will be filled with 0 if flags contains
#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.

When @allocator is NULL, the default allocator will be used.

The alignment in @params is given as a bitmask so that @align + 1 equals
the amount of bytes to align to. For example, to align to 8 bytes,
use an alignment of 7.


</description>
<parameters>
<parameter name="allocator">
<parameter_description> a #GstAllocator to use
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of the visible memory area
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> optional parameters
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMemory.
</return>
</function>

<function name="gst_allocator_find">
<description>
Find a previously registered allocator with @name. When @name is NULL, the
default allocator will be returned.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the allocator
</parameter_description>
</parameter>
</parameters>
<return> a #GstAllocator or NULL when the allocator with @name was not
registered. Use gst_object_unref() to release the allocator after usage.
</return>
</function>

<function name="gst_allocator_free">
<description>
Free @memory that was previously allocated with gst_allocator_alloc().

</description>
<parameters>
<parameter name="allocator">
<parameter_description> a #GstAllocator to use
</parameter_description>
</parameter>
<parameter name="memory">
<parameter_description> the memory to free
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_allocator_register">
<description>
Registers the memory @allocator with @name. This function takes ownership of
@allocator.

</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the allocator
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> #GstAllocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_allocator_set_default">
<description>
Set the default allocator. This function takes ownership of @allocator.

</description>
<parameters>
<parameter name="allocator">
<parameter_description> a #GstAllocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_sink_get_caps">
<description>
Get the configured caps on @appsink.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps accepted by the sink. gst_caps_unref() after usage.
</return>
</function>

<function name="gst_app_sink_get_drop">
<description>
Check if @appsink will drop old buffers when the maximum amount of queued
buffers is reached.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @appsink is dropping old buffers when the queue is
filled.
</return>
</function>

<function name="gst_app_sink_get_emit_signals">
<description>
Check if appsink will emit the &quot;new-preroll&quot; and &quot;new-sample&quot; signals.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @appsink is emiting the &quot;new-preroll&quot; and &quot;new-sample&quot;
signals.
</return>
</function>

<function name="gst_app_sink_get_max_buffers">
<description>
Get the maximum amount of buffers that can be queued in @appsink.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
</parameters>
<return> The maximum amount of buffers that can be queued.
</return>
</function>

<function name="gst_app_sink_is_eos">
<description>
Check if @appsink is EOS, which is when no more samples can be pulled because
an EOS event was received.

This function also returns %TRUE when the appsink is not in the PAUSED or
PLAYING state.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no more samples can be pulled and the appsink is EOS.
</return>
</function>

<function name="gst_app_sink_pull_preroll">
<description>
Get the last preroll sample in @appsink. This was the sample that caused the
appsink to preroll in the PAUSED state. This sample can be pulled many times
and remains available to the application even after EOS.

This function is typically used when dealing with a pipeline in the PAUSED
state. Calling this function after doing a seek will give the sample right
after the seek position.

Note that the preroll sample will also be returned as the first sample
when calling gst_app_sink_pull_sample().

If an EOS event was received before any buffers, this function returns
%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.

This function blocks until a preroll sample or EOS is received or the appsink
element is set to the READY/NULL state.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer or NULL when the appsink is stopped or EOS.
</return>
</function>

<function name="gst_app_sink_pull_sample">
<description>
This function blocks until a sample or EOS becomes available or the appsink
element is set to the READY/NULL state.

This function will only return samples when the appsink is in the PLAYING
state. All rendered buffers will be put in a queue so that the application
can pull samples at its own rate. Note that when the application does not
pull samples fast enough, the queued buffers could consume a lot of memory,
especially when dealing with raw video frames.

If an EOS event was received before any buffers, this function returns
%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.


</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer or NULL when the appsink is stopped or EOS.
</return>
</function>

<function name="gst_app_sink_set_callbacks">
<description>
Set callbacks which will be executed for each new preroll, new sample and eos.
This is an alternative to using the signals, it has lower overhead and is thus
less expensive, but also less flexible.

If callbacks are installed, no signals will be emitted for performance
reasons.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
<parameter name="callbacks">
<parameter_description> the callbacks
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> a user_data argument for the callbacks
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> a destroy notify function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_sink_set_caps">
<description>
Set the capabilities on the appsink element.  This function takes
a copy of the caps structure. After calling this method, the sink will only
accept caps that match @caps. If @caps is non-fixed, you must check the caps
on the buffers to get the actual used caps.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> caps to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_sink_set_drop">
<description>
Instruct @appsink to drop old buffers when the maximum amount of queued
buffers is reached.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_sink_set_emit_signals">
<description>
Make appsink emit the &quot;new-preroll&quot; and &quot;new-sample&quot; signals. This option is
by default disabled because signal emission is expensive and unneeded when
the application prefers to operate in pull mode.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
<parameter name="emit">
<parameter_description> the new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_sink_set_max_buffers">
<description>
Set the maximum amount of buffers that can be queued in @appsink. After this
amount of buffers are queued in appsink, any more buffers will block upstream
elements until a sample is pulled from @appsink.

</description>
<parameters>
<parameter name="appsink">
<parameter_description> a #GstAppSink
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> the maximum number of buffers to queue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_end_of_stream">
<description>
Indicates to the appsrc element that the last buffer queued in the
element is the last buffer of the stream.


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
</parameters>
<return> #GST_FLOW_OK when the EOS was successfuly queued.
#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
</return>
</function>

<function name="gst_app_src_get_caps">
<description>
Get the configured caps on @appsrc.


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps produced by the source. gst_caps_unref() after usage.
</return>
</function>

<function name="gst_app_src_get_emit_signals">
<description>
Check if appsrc will emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals.


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @appsrc is emitting the &quot;new-preroll&quot; and &quot;new-buffer&quot;
signals.
</return>
</function>

<function name="gst_app_src_get_latency">
<description>
Retrieve the min and max latencies in @min and @max respectively.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> the min latency
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> the min latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_get_max_bytes">
<description>
Get the maximum amount of bytes that can be queued in @appsrc.


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
</parameters>
<return> The maximum amount of bytes that can be queued.
</return>
</function>

<function name="gst_app_src_get_size">
<description>
Get the size of the stream in bytes. A value of -1 means that the size is
not known.


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
</parameters>
<return> the size of the stream previously set with gst_app_src_set_size();
</return>
</function>

<function name="gst_app_src_get_stream_type">
<description>
Get the stream type. Control the stream type of @appsrc
with gst_app_src_set_stream_type().


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
</parameters>
<return> the stream type.
</return>
</function>

<function name="gst_app_src_push_buffer">
<description>
Adds a buffer to the queue of buffers that the appsrc element will
push to its source pad.  This function takes ownership of the buffer.

When the block property is TRUE, this function can block until free
space becomes available in the queue.


</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a #GstBuffer to push
</parameter_description>
</parameter>
</parameters>
<return> #GST_FLOW_OK when the buffer was successfuly queued.
#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
#GST_FLOW_EOS when EOS occured.
</return>
</function>

<function name="gst_app_src_set_callbacks">
<description>
Set callbacks which will be executed when data is needed, enough data has
been collected or when a seek should be performed.
This is an alternative to using the signals, it has lower overhead and is thus
less expensive, but also less flexible.

If callbacks are installed, no signals will be emitted for performance
reasons.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="callbacks">
<parameter_description> the callbacks
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> a user_data argument for the callbacks
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> a destroy notify function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_set_caps">
<description>
Set the capabilities on the appsrc element.  This function takes
a copy of the caps structure. After calling this method, the source will
only produce caps that match @caps. @caps must be fixed and the caps on the
buffers must match the caps or left NULL.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> caps to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_set_emit_signals">
<description>
Make appsrc emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals. This option is
by default disabled because signal emission is expensive and unneeded when
the application prefers to operate in pull mode.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="emit">
<parameter_description> the new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_set_latency">
<description>
Configure the @min and @max latency in @src. If @min is set to -1, the
default latency calculations for pseudo-live sources will be used.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> the min latency
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> the min latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_set_max_bytes">
<description>
Set the maximum amount of bytes that can be queued in @appsrc.
After the maximum amount of bytes are queued, @appsrc will emit the
&quot;enough-data&quot; signal.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> the maximum number of bytes to queue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_set_size">
<description>
Set the size of the stream in bytes. A value of -1 means that the size is
not known.

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_app_src_set_stream_type">
<description>
Set the stream type on @appsrc. For seekable streams, the &quot;seek&quot; signal must
be connected to.

A stream_type stream

</description>
<parameters>
<parameter name="appsrc">
<parameter_description> a #GstAppSrc
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_argb_control_binding_new">
<description>
Create a new control-binding that attaches the given #GstControlSource to the
#GObject property.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object of the property
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the property-name to attach the control source
</parameter_description>
</parameter>
<parameter name="cs_a">
<parameter_description> the control source for the alpha channel
</parameter_description>
</parameter>
<parameter name="cs_r">
<parameter_description> the control source for the red channel
</parameter_description>
</parameter>
<parameter name="cs_g">
<parameter_description> the control source for the green channel
</parameter_description>
</parameter>
<parameter name="cs_b">
<parameter_description> the control source for the blue channel
</parameter_description>
</parameter>
</parameters>
<return> the new #GstARGBControlBinding
</return>
</function>

<function name="gst_atomic_queue_length">
<description>
Get the amount of items in the queue.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstAtomicQueue
</parameter_description>
</parameter>
</parameters>
<return> the number of elements in the queue.
</return>
</function>

<function name="gst_atomic_queue_new">
<description>
Create a new atomic queue instance. @initial_size will be rounded up to the
nearest power of 2 and used as the initial size of the queue.


</description>
<parameters>
<parameter name="initial_size">
<parameter_description> initial queue size
</parameter_description>
</parameter>
</parameters>
<return> a new #GstAtomicQueue
</return>
</function>

<function name="gst_atomic_queue_peek">
<description>
Peek the head element of the queue without removing it from the queue.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstAtomicQueue
</parameter_description>
</parameter>
</parameters>
<return> the head element of @queue or NULL when
the queue is empty.
</return>
</function>

<function name="gst_atomic_queue_pop">
<description>
Get the head element of the queue.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstAtomicQueue
</parameter_description>
</parameter>
</parameters>
<return> the head element of @queue or NULL when
the queue is empty.
</return>
</function>

<function name="gst_atomic_queue_push">
<description>
Append @data to the tail of the queue.

</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstAtomicQueue
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_atomic_queue_ref">
<description>
Increase the refcount of @queue.

</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstAtomicQueue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_atomic_queue_unref">
<description>
Unref @queue and free the memory when the refcount reaches 0.

</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstAtomicQueue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_base_sink_create_ringbuffer">
<description>
Create and return the #GstAudioRingBuffer for @sink. This function will call the
::create_ringbuffer vmethod and will set @sink as the parent of the returned
buffer (see gst_object_set_parent()).


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink.
</parameter_description>
</parameter>
</parameters>
<return> The new audioringbuffer of @sink.
</return>
</function>

<function name="gst_audio_base_sink_get_alignment_threshold">
<description>
Get the current alignment threshold, in nanoseconds, used by @sink.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
</parameters>
<return> The current alignment threshold used by @sink.
</return>
</function>

<function name="gst_audio_base_sink_get_discont_wait">
<description>
Get the current discont wait, in nanoseconds, used by @sink.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
</parameters>
<return> The current discont wait used by @sink.
</return>
</function>

<function name="gst_audio_base_sink_get_drift_tolerance">
<description>
Get the current drift tolerance, in microseconds, used by @sink.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
</parameters>
<return> The current drift tolerance used by @sink.
</return>
</function>

<function name="gst_audio_base_sink_get_provide_clock">
<description>
Queries whether @sink will provide a clock or not. See also
gst_audio_base_sink_set_provide_clock.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @sink will provide a clock.
</return>
</function>

<function name="gst_audio_base_sink_get_slave_method">
<description>
Get the current slave method used by @sink.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
</parameters>
<return> The current slave method used by @sink.
</return>
</function>

<function name="gst_audio_base_sink_set_alignment_threshold">
<description>
Controls the sink's alignment threshold.

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
<parameter name="alignment_threshold">
<parameter_description> the new alignment threshold in nanoseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_base_sink_set_discont_wait">
<description>
Controls how long the sink will wait before creating a discontinuity.

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
<parameter name="discont_wait">
<parameter_description> the new discont wait in nanoseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_base_sink_set_drift_tolerance">
<description>
Controls the sink's drift tolerance.

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
<parameter name="drift_tolerance">
<parameter_description> the new drift tolerance in microseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_base_sink_set_provide_clock">
<description>
Controls whether @sink will provide a clock or not. If @provide is %TRUE,
gst_element_provide_clock() will return a clock that reflects the datarate
of @sink. If @provide is %FALSE, gst_element_provide_clock() will return NULL.

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
<parameter name="provide">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_base_sink_set_slave_method">
<description>
Controls how clock slaving will be performed in @sink.

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstAudioBaseSink
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> the new slave method
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_base_src_create_ringbuffer">
<description>
Create and return the #GstAudioRingBuffer for @src. This function will call the
::create_ringbuffer vmethod and will set @src as the parent of the returned
buffer (see gst_object_set_parent()).


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstAudioBaseSrc.
</parameter_description>
</parameter>
</parameters>
<return> The new audioringbuffer of @src.
</return>
</function>

<function name="gst_audio_base_src_get_provide_clock">
<description>
Queries whether @src will provide a clock or not. See also
gst_audio_base_src_set_provide_clock.


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstAudioBaseSrc
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @src will provide a clock.
</return>
</function>

<function name="gst_audio_base_src_get_slave_method">
<description>
Get the current slave method used by @src.


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstAudioBaseSrc
</parameter_description>
</parameter>
</parameters>
<return> The current slave method used by @src.
</return>
</function>

<function name="gst_audio_base_src_set_provide_clock">
<description>
Controls whether @src will provide a clock or not. If @provide is %TRUE, 
gst_element_provide_clock() will return a clock that reflects the datarate
of @src. If @provide is %FALSE, gst_element_provide_clock() will return NULL.

</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstAudioBaseSrc
</parameter_description>
</parameter>
<parameter name="provide">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_base_src_set_slave_method">
<description>
Controls how clock slaving will be performed in @src.

</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstAudioBaseSrc
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> the new slave method
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_buffer_clip">
<description>
Clip the buffer to the given %GstSegment.

After calling this function the caller does not own a reference to
@buffer anymore.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> The buffer to clip.
</parameter_description>
</parameter>
<parameter name="segment">
<parameter_description> Segment in %GST_FORMAT_TIME or %GST_FORMAT_DEFAULT to which
the buffer should be clipped.
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> sample rate.
</parameter_description>
</parameter>
<parameter name="bpf">
<parameter_description> size of one audio frame in bytes. This is the size of one sample
* channels.
</parameter_description>
</parameter>
</parameters>
<return> %NULL if the buffer is completely outside the configured segment,
otherwise the clipped buffer is returned.

If the buffer has no timestamp, it is assumed to be inside the segment and
is not clipped
</return>
</function>

<function name="gst_audio_buffer_reorder_channels">
<description>
Reorders @buffer from the channel positions @from to the channel
positions @to. @from and @to must contain the same number of
positions and the same positions, only in a different order.
@buffer must be writable.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> The buffer to reorder.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The %GstAudioFormat of the buffer.
</parameter_description>
</parameter>
<parameter name="channels">
<parameter_description> The number of channels.
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> The channel positions in the buffer.
</parameter_description>
</parameter>
<parameter name="to">
<parameter_description> The channel positions to convert to.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the reordering was possible.
</return>
</function>

<function name="gst_audio_cd_src_add_track">
<description>
CDDA sources use this function from their start vfunc to announce the
available data and audio tracks to the base source class. The caller
should allocate @track on the stack, the base source will do a shallow
copy of the structure (and take ownership of the taglist if there is one).


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstAudioCdSrc
</parameter_description>
</parameter>
<parameter name="track">
<parameter_description> address of #GstAudioCdSrcTrack to add
</parameter_description>
</parameter>
</parameters>
<return> FALSE on error, otherwise TRUE.
</return>
</function>

<function name="gst_audio_channel_positions_from_mask">
<description>
Convert the @channels present in @channel_mask to a @position array
(which should have at least @channels entries ensured by caller).
If @channel_mask is set to 0, it is considered as 'not present' for purpose
of conversion.


</description>
<parameters>
<parameter name="channels">
<parameter_description> The number of channels
</parameter_description>
</parameter>
<parameter name="channel_mask">
<parameter_description> The input channel_mask
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The
%GstAudioChannelPosition&lt;!-- --&gt;s
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if channel and channel mask are valid and could be converted
</return>
</function>

<function name="gst_audio_channel_positions_to_mask">
<description>
Convert the @position array of @channels channels to a bitmask.

If @force_order is %TRUE it additionally checks if the channels are
in the order required by GStreamer.


</description>
<parameters>
<parameter name="position">
<parameter_description> The %GstAudioChannelPositions
</parameter_description>
</parameter>
<parameter name="channels">
<parameter_description> The number of channels.
</parameter_description>
</parameter>
<parameter name="force_order">
<parameter_description> Only consider the GStreamer channel order.
</parameter_description>
</parameter>
<parameter name="channel_mask">
<parameter_description> the output channel mask
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the channel positions are valid and could be converted.
</return>
</function>

<function name="gst_audio_channel_positions_to_valid_order">
<description>
Reorders the channel positions in @position from any order to
the GStreamer channel order.


</description>
<parameters>
<parameter name="position">
<parameter_description> The channel positions to
reorder to.
</parameter_description>
</parameter>
<parameter name="channels">
<parameter_description> The number of channels.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the channel positions are valid and reordering
was successful.
</return>
</function>

<function name="gst_audio_check_valid_channel_positions">
<description>
Checks if @position contains valid channel positions for
@channels channels. If @force_order is %TRUE it additionally
checks if the channels are in the order required by GStreamer.


</description>
<parameters>
<parameter name="position">
<parameter_description> The %GstAudioChannelPositions
to check.
</parameter_description>
</parameter>
<parameter name="channels">
<parameter_description> The number of channels.
</parameter_description>
</parameter>
<parameter name="force_order">
<parameter_description> Only consider the GStreamer channel order.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the channel positions are valid.
</return>
</function>

<function name="gst_audio_clock_adjust">
<description>
Adjust @time with the internal offset of the audio clock.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstAudioClock
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> a #GstClockTime
</parameter_description>
</parameter>
</parameters>
<return> @time adjusted with the internal offset.
</return>
</function>

<function name="gst_audio_clock_get_time">
<description>
Report the time as returned by the #GstAudioClockGetTimeFunc without applying
any offsets.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstAudioClock
</parameter_description>
</parameter>
</parameters>
<return> the time as reported by the time function of the audio clock
</return>
</function>

<function name="gst_audio_clock_invalidate">
<description>
Invalidate the clock function. Call this function when the provided
#GstAudioClockGetTimeFunc cannot be called anymore, for example, when the
user_data becomes invalid.

After calling this function, @clock will return the last returned time for
the rest of its lifetime.

</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstAudioClock
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_clock_new">
<description>
Create a new #GstAudioClock instance. Whenever the clock time should be
calculated it will call @func with @user_data. When @func returns
#GST_CLOCK_TIME_NONE, the clock will return the last reported time.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the clock
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data
</parameter_description>
</parameter>
<parameter name="destroy_notify">
<parameter_description> #GDestroyNotify for @user_data
</parameter_description>
</parameter>
</parameters>
<return> a new #GstAudioClock casted to a #GstClock.
</return>
</function>

<function name="gst_audio_clock_reset">
<description>
Inform @clock that future calls to #GstAudioClockGetTimeFunc will return values
starting from @time. The clock will update an internal offset to make sure that
future calls to internal_time will return an increasing result as required by
the #GstClock object.

</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstAudioClock
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> a #GstClockTime
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_allocate_output_buffer">
<description>
Helper function that allocates a buffer to hold an audio frame
for @dec's current output format.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of the buffer
</parameter_description>
</parameter>
</parameters>
<return> allocated buffer
</return>
</function>

<function name="gst_audio_decoder_finish_frame">
<description>
Collects decoded data and pushes it downstream.

@buf may be NULL in which case the indicated number of frames
are discarded and considered to have produced no output
(e.g. lead-in or setup frames).
Otherwise, source pad caps must be set when it is called with valid
data in @buf.

Note that a frame received in gst_audio_decoder_handle_frame() may be
invalidated by a call to this function.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> decoded data
</parameter_description>
</parameter>
<parameter name="frames">
<parameter_description> number of decoded frames represented by decoded data
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn that should be escalated to caller (of caller)
</return>
</function>

<function name="gst_audio_decoder_get_allocator">
<description>
Lets #GstAudioDecoder sub-classes to know the memory @allocator
used by the base class and its @params.

Unref the @allocator after use it.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the #GstAllocator
used
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> the
#GstAllocatorParams of @allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_get_audio_info">
<description>

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> a #GstAudioInfo describing the input audio format
</return>
</function>

<function name="gst_audio_decoder_get_delay">
<description>

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured decoder delay
</return>
</function>

<function name="gst_audio_decoder_get_drainable">
<description>
Queries decoder drain handling.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if drainable handling is enabled.

MT safe.
</return>
</function>

<function name="gst_audio_decoder_get_estimate_rate">
<description>

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured byte to time conversion setting
</return>
</function>

<function name="gst_audio_decoder_get_latency">
<description>
Sets the variables pointed to by @min and @max to the currently configured
latency.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> a pointer to storage to hold minimum latency
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> a pointer to storage to hold maximum latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_get_max_errors">
<description>

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured decoder tolerated error count.
</return>
</function>

<function name="gst_audio_decoder_get_min_latency">
<description>
Queries decoder's latency aggregation.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> aggregation latency.

MT safe.
</return>
</function>

<function name="gst_audio_decoder_get_needs_format">
<description>
Queries decoder required format handling.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if required format handling is enabled.

MT safe.
</return>
</function>

<function name="gst_audio_decoder_get_parse_state">
<description>
Return current parsing (sync and eos) state.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="sync">
<parameter_description> a pointer to a variable to hold the current sync state
</parameter_description>
</parameter>
<parameter name="eos">
<parameter_description> a pointer to a variable to hold the current eos state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_get_plc">
<description>
Queries decoder packet loss concealment handling.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if packet loss concealment is enabled.

MT safe.
</return>
</function>

<function name="gst_audio_decoder_get_plc_aware">
<description>

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured plc handling
</return>
</function>

<function name="gst_audio_decoder_get_tolerance">
<description>
Queries current audio jitter tolerance threshold.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> decoder audio jitter tolerance threshold.

MT safe.
</return>
</function>

<function name="gst_audio_decoder_merge_tags">
<description>
Adds tags to so-called pending tags, which will be processed
before pushing out data downstream.

Note that this is provided for convenience, and the subclass is
not required to use this and can still do tag handling on its own,
although it should be aware that baseclass already takes care
of the usual CODEC/AUDIO_CODEC tags.

MT safe.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> a #GstTagList to merge
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the #GstTagMergeMode to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_negotiate">
<description>
Negotiate with downstreame elements to currently configured #GstAudioInfo.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the negotiation succeeded, else #FALSE.
</return>
</function>

<function name="gst_audio_decoder_set_drainable">
<description>
Configures decoder drain handling.  If drainable, subclass might
be handed a NULL buffer to have it return any leftover decoded data.
Otherwise, it is not considered so capable and will only ever be passed
real data.

MT safe.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_estimate_rate">
<description>
Allows baseclass to perform byte to time estimated conversion.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> whether to enable byte to time conversion
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_latency">
<description>
Sets decoder latency.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> minimum latency
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> maximum latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_max_errors">
<description>
Sets numbers of tolerated decoder errors, where a tolerated one is then only
warned about, but more than tolerated will lead to fatal error.  Default
is set to GST_AUDIO_DECODER_MAX_ERRORS.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> max tolerated errors
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_min_latency">
<description>
Sets decoder minimum aggregation latency.

MT safe.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> new minimum latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_needs_format">
<description>
Configures decoder format needs.  If enabled, subclass needs to be
negotiated with format caps before it can process any data.  It will then
never be handed any data before it has been configured.
Otherwise, it might be handed data without having been configured and
is then expected being able to do so either by default
or based on the input data.

MT safe.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_output_format">
<description>
Configure output info on the srcpad of @dec.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> #GstAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_audio_decoder_set_plc">
<description>
Enable or disable decoder packet loss concealment, provided subclass
and codec are capable and allow handling plc.

MT safe.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_plc_aware">
<description>
Indicates whether or not subclass handles packet loss concealment (plc).

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="plc">
<parameter_description> new plc state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_decoder_set_tolerance">
<description>
Configures decoder audio jitter tolerance threshold.

MT safe.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstAudioDecoder
</parameter_description>
</parameter>
<parameter name="tolerance">
<parameter_description> new tolerance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_allocate_output_buffer">
<description>
Helper function that allocates a buffer to hold an encoded audio frame
for @enc's current output format.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of the buffer
</parameter_description>
</parameter>
</parameters>
<return> allocated buffer
</return>
</function>

<function name="gst_audio_encoder_finish_frame">
<description>
Collects encoded data and pushes encoded data downstream.
Source pad caps must be set when this is called.

If @samples &lt; 0, then best estimate is all samples provided to encoder
(subclass) so far.  @buf may be NULL, in which case next number of @samples
are considered discarded, e.g. as a result of discontinuous transmission,
and a discontinuity is marked.

Note that samples received in gst_audio_encoder_handle_frame()
may be invalidated by a call to this function.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> encoded data
</parameter_description>
</parameter>
<parameter name="samples">
<parameter_description> number of samples (per channel) represented by encoded data
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn that should be escalated to caller (of caller)
</return>
</function>

<function name="gst_audio_encoder_get_allocator">
<description>
Lets #GstAudioEncoder sub-classes to know the memory @allocator
used by the base class and its @params.

Unref the @allocator after use it.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the #GstAllocator
used
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> the
#GstAllocatorParams of @allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_get_audio_info">
<description>

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> a #GstAudioInfo describing the input audio format
</return>
</function>

<function name="gst_audio_encoder_get_drainable">
<description>
Queries encoder drain handling.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if drainable handling is enabled.

MT safe.
</return>
</function>

<function name="gst_audio_encoder_get_frame_max">
<description>

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured maximum handled frames
</return>
</function>

<function name="gst_audio_encoder_get_frame_samples_max">
<description>

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> currently maximum requested samples per frame
</return>
</function>

<function name="gst_audio_encoder_get_frame_samples_min">
<description>

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> currently minimum requested samples per frame
</return>
</function>

<function name="gst_audio_encoder_get_hard_min">
<description>
Queries encoder hard minimum handling.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if hard minimum handling is enabled.

MT safe.
</return>
</function>

<function name="gst_audio_encoder_get_hard_sync">
<description>
Queries encoder's hard resync setting.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if hard resync is enabled.

MT safe.
</return>
</function>

<function name="gst_audio_encoder_get_latency">
<description>
Sets the variables pointed to by @min and @max to the currently configured
latency.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> a pointer to storage to hold minimum latency
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> a pointer to storage to hold maximum latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_get_lookahead">
<description>

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured encoder lookahead
</return>
</function>

<function name="gst_audio_encoder_get_mark_granule">
<description>
Queries if the encoder will handle granule marking.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if granule marking is enabled.

MT safe.
</return>
</function>

<function name="gst_audio_encoder_get_perfect_timestamp">
<description>
Queries encoder perfect timestamp behaviour.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if perfect timestamp setting enabled.

MT safe.
</return>
</function>

<function name="gst_audio_encoder_get_tolerance">
<description>
Queries current audio jitter tolerance threshold.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> encoder audio jitter tolerance threshold.

MT safe.
</return>
</function>

<function name="gst_audio_encoder_merge_tags">
<description>
Adds tags to so-called pending tags, which will be processed
before pushing out data downstream.

Note that this is provided for convenience, and the subclass is
not required to use this and can still do tag handling on its own,
although it should be aware that baseclass already takes care
of the usual CODEC/AUDIO_CODEC tags.

MT safe.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> a #GstTagList to merge
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the #GstTagMergeMode to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_negotiate">
<description>
Negotiate with downstreame elements to currently configured #GstCaps.


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the negotiation succeeded, else #FALSE.
</return>
</function>

<function name="gst_audio_encoder_proxy_getcaps">
<description>
Returns caps that express @caps (or sink template caps if @caps == NULL)
restricted to channel/rate combinations supported by downstream elements
(e.g. muxers).


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> initial caps
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> filter caps
</parameter_description>
</parameter>
</parameters>
<return> a #GstCaps owned by caller
</return>
</function>

<function name="gst_audio_encoder_set_drainable">
<description>
Configures encoder drain handling.  If drainable, subclass might
be handed a NULL buffer to have it return any leftover encoded data.
Otherwise, it is not considered so capable and will only ever be passed
real data.

MT safe.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_frame_max">
<description>
Sets max number of frames accepted at once (assumed minimally 1).
Requires @frame_samples_min and @frame_samples_max to be the equal.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> number of frames
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_frame_samples_max">
<description>
Sets number of samples (per channel) subclass needs to be handed,
at most or will be handed all available if 0.

If an exact number of samples is required, gst_audio_encoder_set_frame_samples_min()
must be called with the same number.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> number of samples per frame
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_frame_samples_min">
<description>
Sets number of samples (per channel) subclass needs to be handed,
at least or will be handed all available if 0.

If an exact number of samples is required, gst_audio_encoder_set_frame_samples_max()
must be called with the same number.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> number of samples per frame
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_hard_min">
<description>
Configures encoder hard minimum handling.  If enabled, subclass
will never be handed less samples than it configured, which otherwise
might occur near end-of-data handling.  Instead, the leftover samples
will simply be discarded.

MT safe.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_hard_sync">
<description>
Sets encoder hard resync handling.

MT safe.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_headers">
<description>
Set the codec headers to be sent downstream whenever requested.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="headers">
<parameter_description> a list of
#GstBuffer containing the codec header
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_latency">
<description>
Sets encoder latency.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> minimum latency
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> maximum latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_lookahead">
<description>
Sets encoder lookahead (in units of input rate samples)

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> lookahead
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_mark_granule">
<description>
Enable or disable encoder granule handling.

MT safe.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_perfect_timestamp">
<description>
Enable or disable encoder perfect output timestamp preference.

MT safe.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_encoder_set_tolerance">
<description>
Configures encoder audio jitter tolerance threshold.

MT safe.

</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstAudioEncoder
</parameter_description>
</parameter>
<parameter name="tolerance">
<parameter_description> new tolerance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_filter_class_add_pad_templates">
<description>
Convenience function to add pad templates to this element class, with
@allowed_caps as the caps that can be handled.

This function is usually used from within a GObject class_init function.

</description>
<parameters>
<parameter name="klass">
<parameter_description> an #GstAudioFilterClass
</parameter_description>
</parameter>
<parameter name="allowed_caps">
<parameter_description> what formats the filter can handle, as #GstCaps
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_format_build_integer">
<description>
Construct a #GstAudioFormat with given parameters.


</description>
<parameters>
<parameter name="sign">
<parameter_description> signed or unsigned format
</parameter_description>
</parameter>
<parameter name="endianness">
<parameter_description> G_LITTLE_ENDIAN or G_BIG_ENDIAN
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> amount of bits used per sample
</parameter_description>
</parameter>
<parameter name="depth">
<parameter_description> amount of used bits in @width
</parameter_description>
</parameter>
</parameters>
<return> a #GstAudioFormat or GST_AUDIO_FORMAT_UNKNOWN when no audio format
exists with the given parameters.
</return>
</function>

<function name="gst_audio_format_fill_silence">
<description>
Fill @length bytes in @dest with silence samples for @info.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioFormatInfo
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> a destination
to fill
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length to fill
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_format_from_string">
<description>
Convert the @format string to its #GstAudioFormat.


</description>
<parameters>
<parameter name="format">
<parameter_description> a format string
</parameter_description>
</parameter>
</parameters>
<return> the #GstAudioFormat for @format or GST_AUDIO_FORMAT_UNKNOWN when the
string is not a known format.
</return>
</function>

<function name="gst_audio_format_get_info">
<description>
Get the #GstAudioFormatInfo for @format


</description>
<parameters>
<parameter name="format">
<parameter_description> a #GstAudioFormat
</parameter_description>
</parameter>
</parameters>
<return> The #GstAudioFormatInfo for @format.
</return>
</function>

<function name="gst_audio_get_channel_reorder_map">
<description>
Returns a reorder map for @from to @to that can be used in
custom channel reordering code, e.g. to convert from or to the
GStreamer channel order. @from and @to must contain the same
number of positions and the same positions, only in a
different order.

The resulting @reorder_map can be used for reordering by assigning
channel i of the input to channel reorder_map[i] of the output.


</description>
<parameters>
<parameter name="channels">
<parameter_description> The number of channels.
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> The channel positions to reorder from.
</parameter_description>
</parameter>
<parameter name="to">
<parameter_description> The channel positions to reorder to.
</parameter_description>
</parameter>
<parameter name="reorder_map">
<parameter_description> Pointer to the reorder map.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the channel positions are valid and reordering
is possible.
</return>
</function>

<function name="gst_audio_iec61937_frame_size">
<description>
Calculated the size of the buffer expected by gst_audio_iec61937_payload() for
payloading type from @spec.


</description>
<parameters>
<parameter name="spec">
<parameter_description> the ringbufer spec
</parameter_description>
</parameter>
</parameters>
<return> the size or 0 if the given @type is not supported or cannot be
payloaded.
</return>
</function>

<function name="gst_audio_iec61937_payload">
<description>
Payloads @src in the form specified by IEC 61937 for the type from @spec and
stores the result in @dst. @src must contain exactly one frame of data and
the frame is not checked for errors.


</description>
<parameters>
<parameter name="src">
<parameter_description> a buffer containing the data to payload
</parameter_description>
</parameter>
<parameter name="src_n">
<parameter_description> size of @src in bytes
</parameter_description>
</parameter>
<parameter name="dst">
<parameter_description> the destination buffer to store the
payloaded contents in. Should not overlap with @src
</parameter_description>
</parameter>
<parameter name="dst_n">
<parameter_description> size of @dst in bytes
</parameter_description>
</parameter>
<parameter name="spec">
<parameter_description> the ringbufer spec for @src
</parameter_description>
</parameter>
<parameter name="endianness">
<parameter_description> the expected byte order of the payloaded data
</parameter_description>
</parameter>
</parameters>
<return> transfer-full: %TRUE if the payloading was successful, %FALSE
otherwise.
</return>
</function>

<function name="gst_audio_info_convert">
<description>
Converts among various #GstFormat types.  This function handles
GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
raw audio, GST_FORMAT_DEFAULT corresponds to audio frames.  This
function can be used to handle pad queries of the type GST_QUERY_CONVERT.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
<parameter name="src_fmt">
<parameter_description> #GstFormat of the @src_val
</parameter_description>
</parameter>
<parameter name="src_val">
<parameter_description> value to convert
</parameter_description>
</parameter>
<parameter name="dest_fmt">
<parameter_description> #GstFormat of the @dest_val
</parameter_description>
</parameter>
<parameter name="dest_val">
<parameter_description> pointer to destination value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the conversion was successful.
</return>
</function>

<function name="gst_audio_info_copy">
<description>
Copy a GstAudioInfo structure.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> a new #GstAudioInfo. free with gst_audio_info_free.
</return>
</function>

<function name="gst_audio_info_free">
<description>
Free a GstAudioInfo structure previously allocated with gst_audio_info_new()
or gst_audio_info_copy().

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_info_from_caps">
<description>
Parse @caps and update @info.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @caps could be parsed
</return>
</function>

<function name="gst_audio_info_init">
<description>
Initialize @info with default values.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_info_is_equal">
<description>
Compares two #GstAudioInfo and returns whether they are equal or not



</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @info and @other are equal, else %FALSE.

</return>
</function>

<function name="gst_audio_info_new">
<description>
Allocate a new #GstAudioInfo that is also initialized with
gst_audio_info_init().


</description>
<parameters>
</parameters>
<return> a new #GstAudioInfo. free with gst_audio_info_free().
</return>
</function>

<function name="gst_audio_info_set_format">
<description>
Set the default info for the audio info of @format and @rate and @channels.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> the samplerate
</parameter_description>
</parameter>
<parameter name="channels">
<parameter_description> the number of channels
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the channel positions
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_info_to_caps">
<description>
Convert the values of @info into a #GstCaps.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps containing the
info of @info.
</return>
</function>

<function name="gst_audio_reorder_channels">
<description>
Reorders @data from the channel positions @from to the channel
positions @to. @from and @to must contain the same number of
positions and the same positions, only in a different order.


</description>
<parameters>
<parameter name="data">
<parameter_description> The pointer to
the memory.
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The size of the memory.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The %GstAudioFormat of the buffer.
</parameter_description>
</parameter>
<parameter name="channels">
<parameter_description> The number of channels.
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> The channel positions in the buffer.
</parameter_description>
</parameter>
<parameter name="to">
<parameter_description> The channel positions to convert to.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the reordering was possible.
</return>
</function>

<function name="gst_audio_ring_buffer_acquire">
<description>
Allocate the resources for the audioringbuffer. This function fills
in the data pointer of the ring buffer with a valid #GstBuffer
to which samples can be written.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to acquire
</parameter_description>
</parameter>
<parameter name="spec">
<parameter_description> the specs of the buffer
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be acquired, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_activate">
<description>
Activate @buf to start or stop pulling data.

MT safe.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to activate
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> the new mode
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be activated in the requested mode,
FALSE on error.
</return>
</function>

<function name="gst_audio_ring_buffer_advance">
<description>
Subclasses should call this function to notify the fact that 
@advance segments are now processed by the device.

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to advance
</parameter_description>
</parameter>
<parameter name="advance">
<parameter_description> the number of segments written
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_clear">
<description>
Clear the given segment of the buffer with silence samples.
This function is used by subclasses.

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to clear
</parameter_description>
</parameter>
<parameter name="segment">
<parameter_description> the segment to clear
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_clear_all">
<description>
Fill the audioringbuffer with silence.

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to clear
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_close_device">
<description>
Close the audio device associated with the ring buffer. The ring buffer
should already have been released via gst_audio_ring_buffer_release().


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be closed, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_commit">
<description>
Commit @in_samples samples pointed to by @data to the audioringbuffer @buf.

@in_samples and @out_samples define the rate conversion to perform on the
samples in @data. For negative rates, @out_samples must be negative and
@in_samples positive.

When @out_samples is positive, the first sample will be written at position @sample
in the audioringbuffer. When @out_samples is negative, the last sample will be written to
@sample in reverse order.

@out_samples does not need to be a multiple of the segment size of the audioringbuffer
although it is recommended for optimal performance.

@accum will hold a temporary accumulator used in rate conversion and should be
set to 0 when this function is first called. In case the commit operation is
interrupted, one can resume the processing by passing the previously returned
@accum value back to this function.

MT safe.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to commit
</parameter_description>
</parameter>
<parameter name="sample">
<parameter_description> the sample position of the data
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to commit
</parameter_description>
</parameter>
<parameter name="in_samples">
<parameter_description> the number of samples in the data to commit
</parameter_description>
</parameter>
<parameter name="out_samples">
<parameter_description> the number of samples to write to the audioringbuffer
</parameter_description>
</parameter>
<parameter name="accum">
<parameter_description> accumulator for rate conversion.
</parameter_description>
</parameter>
</parameters>
<return> The number of samples written to the audioringbuffer or -1 on error. The
number of samples written can be less than @out_samples when @buf was interrupted
with a flush or stop.
</return>
</function>

<function name="gst_audio_ring_buffer_convert">
<description>
Convert @src_val in @src_fmt to the equivalent value in @dest_fmt. The result
will be put in @dest_val.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
<parameter name="src_fmt">
<parameter_description> the source format
</parameter_description>
</parameter>
<parameter name="src_val">
<parameter_description> the source value
</parameter_description>
</parameter>
<parameter name="dest_fmt">
<parameter_description> the destination format
</parameter_description>
</parameter>
<parameter name="dest_val">
<parameter_description> a location to store the converted value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the conversion succeeded.
</return>
</function>

<function name="gst_audio_ring_buffer_debug_spec_buff">
<description>
Print debug info about the buffer sized in @spec to the debug log.

</description>
<parameters>
<parameter name="spec">
<parameter_description> the spec to debug
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_debug_spec_caps">
<description>
Print debug info about the parsed caps in @spec to the debug log.

</description>
<parameters>
<parameter name="spec">
<parameter_description> the spec to debug
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_delay">
<description>
Get the number of samples queued in the audio device. This is
usually less than the segment size but can be bigger when the
implementation uses another internal buffer between the audio
device.

For playback audioringbuffers this is the amount of samples transfered from the
ringbuffer to the device but still not played.

For capture audioringbuffers this is the amount of samples in the device that are
not yet transfered to the audioringbuffer.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to query
</parameter_description>
</parameter>
</parameters>
<return> The number of samples queued in the audio device.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_device_is_open">
<description>
Checks the status of the device associated with the ring buffer.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device was open, FALSE if it was closed.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_is_acquired">
<description>
Check if the audioringbuffer is acquired and ready to use.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to check
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the audioringbuffer is acquired, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_is_active">
<description>
Check if @buf is activated.

MT safe.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device is active.
</return>
</function>

<function name="gst_audio_ring_buffer_is_flushing">
<description>
Check if @buf is flushing.

MT safe.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device is flushing.
</return>
</function>

<function name="gst_audio_ring_buffer_may_start">
<description>
Tell the audioringbuffer that it is allowed to start playback when
the audioringbuffer is filled with samples. 

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
<parameter name="allowed">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_open_device">
<description>
Open the audio device associated with the ring buffer. Does not perform any
setup on the device. You must open the device before acquiring the ring
buffer.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be opened, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_parse_caps">
<description>
Parse @caps into @spec.


</description>
<parameters>
<parameter name="spec">
<parameter_description> a spec
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the caps could be parsed.
</return>
</function>

<function name="gst_audio_ring_buffer_pause">
<description>
Pause processing samples from the audioringbuffer.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to pause
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be paused, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_prepare_read">
<description>
Returns a pointer to memory where the data from segment @segment
can be found. This function is mostly used by subclasses.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to read from
</parameter_description>
</parameter>
<parameter name="segment">
<parameter_description> the segment to read
</parameter_description>
</parameter>
<parameter name="readptr">
<parameter_description> the pointer to the memory where samples can be read
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the number of bytes to read
</parameter_description>
</parameter>
</parameters>
<return> FALSE if the buffer is not started.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_read">
<description>
Read @len samples from the audioringbuffer into the memory pointed 
to by @data.
The first sample should be read from position @sample in
the audioringbuffer.

@len should not be a multiple of the segment size of the audioringbuffer
although it is recommended.

@timestamp will return the timestamp associated with the data returned.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to read from
</parameter_description>
</parameter>
<parameter name="sample">
<parameter_description> the sample position of the data
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> where the data should be read
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the number of samples in data to read
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> where the timestamp is returned
</parameter_description>
</parameter>
</parameters>
<return> The number of samples read from the audioringbuffer or -1 on
error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_release">
<description>
Free the resources of the audioringbuffer.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to release
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be released, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_samples_done">
<description>
Get the number of samples that were processed by the audioringbuffer
since it was last started. This does not include the number of samples not
yet processed (see gst_audio_ring_buffer_delay()).


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to query
</parameter_description>
</parameter>
</parameters>
<return> The number of samples processed by the audioringbuffer.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_set_callback">
<description>
Sets the given callback function on the buffer. This function
will be called every time a segment has been written to a device.

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to set the callback on
</parameter_description>
</parameter>
<parameter name="cb">
<parameter_description> the callback to set
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_set_channel_positions">
<description>
Tell the audioringbuffer about the device's channel positions. This must
be called in when the audioringbuffer is acquired.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the device channel positions
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_set_flushing">
<description>
Set the audioringbuffer to flushing mode or normal mode.

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to flush
</parameter_description>
</parameter>
<parameter name="flushing">
<parameter_description> the new mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_set_sample">
<description>
Make sure that the next sample written to the device is
accounted for as being the @sample sample written to the
device. This value will be used in reporting the current
sample position of the audioringbuffer.

This function will also clear the buffer with silence.

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to use
</parameter_description>
</parameter>
<parameter name="sample">
<parameter_description> the sample number to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_audio_ring_buffer_start">
<description>
Start processing samples from the audioringbuffer.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to start
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be started, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_audio_ring_buffer_stop">
<description>
Stop processing samples from the audioringbuffer.


</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer to stop
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the device could be stopped, FALSE on error.

MT safe.
</return>
</function>

<function name="gst_base_parse_add_index_entry">
<description>
Adds an entry to the index associating @offset to @ts.  It is recommended
to only add keyframe entries.  @force allows to bypass checks, such as
whether the stream is (upstream) seekable, another entry is already &quot;close&quot;
to the new entry, etc.


</description>
<parameters>
<parameter name="parse">
<parameter_description> #GstBaseParse.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset of entry
</parameter_description>
</parameter>
<parameter name="ts">
<parameter_description> timestamp associated with offset
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> whether entry refers to keyframe
</parameter_description>
</parameter>
<parameter name="force">
<parameter_description> add entry disregarding sanity checks
</parameter_description>
</parameter>
</parameters>
<return> #gboolean indicating whether entry was added
</return>
</function>

<function name="gst_base_parse_convert_default">
<description>
Default implementation of &quot;convert&quot; vmethod in #GstBaseParse class.


</description>
<parameters>
<parameter name="parse">
<parameter_description> #GstBaseParse.
</parameter_description>
</parameter>
<parameter name="src_format">
<parameter_description> #GstFormat describing the source format.
</parameter_description>
</parameter>
<parameter name="src_value">
<parameter_description> Source value to be converted.
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> #GstFormat defining the converted format.
</parameter_description>
</parameter>
<parameter name="dest_value">
<parameter_description> Pointer where the conversion result will be put.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if conversion was successful.
</return>
</function>

<function name="gst_base_parse_finish_frame">
<description>
Collects parsed data and pushes this downstream.
Source pad caps must be set when this is called.

If @frame's out_buffer is set, that will be used as subsequent frame data.
Otherwise, @size samples will be taken from the input and used for output,
and the output's metadata (timestamps etc) will be taken as (optionally)
set by the subclass on @frame's (input) buffer (which is otherwise
ignored for any but the above purpose/information).

Note that the latter buffer is invalidated by this call, whereas the
caller retains ownership of @frame.


</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> a #GstBaseParseFrame
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> consumed input data represented by frame
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn that should be escalated to caller (of caller)
</return>
</function>

<function name="gst_base_parse_frame_init">
<description>
Sets a #GstBaseParseFrame to initial state.  Currently this means
all public fields are zero-ed and a private flag is set to make
sure gst_base_parse_frame_free() only frees the contents but not
the actual frame. Use this function to initialise a #GstBaseParseFrame
allocated on the stack.

</description>
<parameters>
<parameter name="frame">
<parameter_description> #GstBaseParseFrame.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_frame_new">
<description>
Allocates a new #GstBaseParseFrame. This function is mainly for bindings,
elements written in C should usually allocate the frame on the stack and
then use gst_base_parse_frame_init() to initialise it.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the flags
</parameter_description>
</parameter>
<parameter name="overhead">
<parameter_description> number of bytes in this frame which should be counted as
metadata overhead, ie. not used to calculate the average bitrate.
Set to -1 to mark the entire frame as metadata. If in doubt, set to 0.
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated #GstBaseParseFrame. Free with
gst_base_parse_frame_free() when no longer needed.
</return>
</function>

<function name="gst_base_parse_push_frame">
<description>
Pushes the frame's buffer downstream, sends any pending events and
does some timestamp and segment handling. Takes ownership of
frame's buffer, though caller retains ownership of @frame.

This must be called with sinkpad STREAM_LOCK held.


</description>
<parameters>
<parameter name="parse">
<parameter_description> #GstBaseParse.
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> a #GstBaseParseFrame
</parameter_description>
</parameter>
</parameters>
<return> #GstFlowReturn
</return>
</function>

<function name="gst_base_parse_set_average_bitrate">
<description>
Optionally sets the average bitrate detected in media (if non-zero),
e.g. based on metadata, as it will be posted to the application.

By default, announced average bitrate is estimated. The average bitrate
is used to estimate the total duration of the stream and to estimate
a seek position, if there's no index and the format is syncable
(see gst_base_parse_set_syncable()).

</description>
<parameters>
<parameter name="parse">
<parameter_description> #GstBaseParse.
</parameter_description>
</parameter>
<parameter name="bitrate">
<parameter_description> average bitrate in bits/second
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_duration">
<description>
Sets the duration of the currently playing media. Subclass can use this
when it is able to determine duration and/or notices a change in the media
duration.  Alternatively, if @interval is non-zero (default), then stream
duration is determined based on estimated bitrate, and updated every @interval
frames.

</description>
<parameters>
<parameter name="parse">
<parameter_description> #GstBaseParse.
</parameter_description>
</parameter>
<parameter name="fmt">
<parameter_description> #GstFormat.
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> duration value.
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> how often to update the duration estimate based on bitrate, or 0.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_frame_rate">
<description>
If frames per second is configured, parser can take care of buffer duration
and timestamping.  When performing segment clipping, or seeking to a specific
location, a corresponding decoder might need an initial @lead_in and a
following @lead_out number of frames to ensure the desired segment is
entirely filled upon decoding.

</description>
<parameters>
<parameter name="parse">
<parameter_description> the #GstBaseParse to set
</parameter_description>
</parameter>
<parameter name="fps_num">
<parameter_description> frames per second (numerator).
</parameter_description>
</parameter>
<parameter name="fps_den">
<parameter_description> frames per second (denominator).
</parameter_description>
</parameter>
<parameter name="lead_in">
<parameter_description> frames needed before a segment for subsequent decode
</parameter_description>
</parameter>
<parameter name="lead_out">
<parameter_description> frames needed after a segment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_has_timing_info">
<description>
Set if frames carry timing information which the subclass can (generally)
parse and provide.  In particular, intrinsic (rather than estimated) time
can be obtained following a seek.

</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="has_timing">
<parameter_description> whether frames carry timing information
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_infer_ts">
<description>
By default, the base class might try to infer PTS from DTS and vice
versa.  While this is generally correct for audio data, it may not
be otherwise. Sub-classes implementing such formats should disable
timestamp infering.

</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="infer_ts">
<parameter_description> %TRUE if parser should infer DTS/PTS from each other
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_latency">
<description>
Sets the minimum and maximum (which may likely be equal) latency introduced
by the parsing process.  If there is such a latency, which depends on the
particular parsing of the format, it typically corresponds to 1 frame duration.

</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> minimum parse latency
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> maximum parse latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_min_frame_size">
<description>
Subclass can use this function to tell the base class that it needs to
give at least #min_size buffers.

</description>
<parameters>
<parameter name="parse">
<parameter_description> #GstBaseParse.
</parameter_description>
</parameter>
<parameter name="min_size">
<parameter_description> Minimum size of the data that this base class should give to
subclass.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_passthrough">
<description>
Set if the nature of the format or configuration does not allow (much)
parsing, and the parser should operate in passthrough mode (which only
applies when operating in push mode). That is, incoming buffers are
pushed through unmodified, i.e. no @check_valid_frame or @parse_frame
callbacks will be invoked, but @pre_push_frame will still be invoked,
so subclass can perform as much or as little is appropriate for
passthrough semantics in @pre_push_frame.

</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="passthrough">
<parameter_description> %TRUE if parser should run in passthrough mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_pts_interpolation">
<description>
By default, the base class will guess PTS timestamps using a simple
interpolation (previous timestamp + duration), which is incorrect for
data streams with reordering, where PTS can go backward. Sub-classes
implementing such formats should disable PTS interpolation.

</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="pts_interpolate">
<parameter_description> %TRUE if parser should interpolate PTS timestamps
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_syncable">
<description>
Set if frame starts can be identified. This is set by default and
determines whether seeking based on bitrate averages
is possible for a format/stream.

</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="syncable">
<parameter_description> set if frame starts can be identified
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_parse_set_ts_at_offset">
<description>
This function should only be called from a @handle_frame implementation.

GstBaseParse creates initial timestamps for frames by using the last
timestamp seen in the stream before the frame starts.  In certain
cases, the correct timestamps will occur in the stream after the
start of the frame, but before the start of the actual picture data.
This function can be used to set the timestamps based on the offset
into the frame data that the picture starts.


</description>
<parameters>
<parameter name="parse">
<parameter_description> a #GstBaseParse
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset into current buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_do_preroll">
<description>
If the @sink spawns its own thread for pulling buffers from upstream it
should call this method after it has pulled a buffer. If the element needed
to preroll, this function will perform the preroll and will then block
until the element state is changed.

This function should be called with the PREROLL_LOCK held.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="obj">
<parameter_description> the mini object that caused the preroll
</parameter_description>
</parameter>
</parameters>
<return> #GST_FLOW_OK if the preroll completed and processing can
continue. Any other return value should be returned from the render vmethod.
</return>
</function>

<function name="gst_base_sink_get_blocksize">
<description>
Get the number of bytes that the sink will pull when it is operating in pull
mode.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
</parameters>
<return> the number of bytes @sink will pull in pull mode.
</return>
</function>

<function name="gst_base_sink_get_last_sample">
<description>
Get the last sample that arrived in the sink and was used for preroll or for
rendering. This property can be used to generate thumbnails.

The #GstCaps on the sample can be used to determine the type of the buffer.

Free-function: gst_sample_unref


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> a #GstSample. gst_sample_unref() after usage.
This function returns NULL when no buffer has arrived in the sink yet
or when the sink is not in PAUSED or PLAYING.
</return>
</function>

<function name="gst_base_sink_get_latency">
<description>
Get the currently configured latency.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> The configured latency.
</return>
</function>

<function name="gst_base_sink_get_max_bitrate">
<description>
Get the maximum amount of bits per second that the sink will render.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
</parameters>
<return> the maximum number of bits per second @sink will render.

</return>
</function>

<function name="gst_base_sink_get_max_lateness">
<description>
Gets the max lateness value. See gst_base_sink_set_max_lateness for
more details.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> The maximum time in nanoseconds that a buffer can be late
before it is dropped and not rendered. A value of -1 means an
unlimited time.
</return>
</function>

<function name="gst_base_sink_get_render_delay">
<description>
Get the render delay of @sink. see gst_base_sink_set_render_delay() for more
information about the render delay.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
</parameters>
<return> the render delay of @sink.
</return>
</function>

<function name="gst_base_sink_get_sync">
<description>
Checks if @sink is currently configured to synchronize against the
clock.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the sink is configured to synchronize against the clock.
</return>
</function>

<function name="gst_base_sink_get_throttle_time">
<description>
Get the time that will be inserted between frames to control the 
maximum buffers per second.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
</parameters>
<return> the number of nanoseconds @sink will put between frames.
</return>
</function>

<function name="gst_base_sink_get_ts_offset">
<description>
Get the synchronisation offset of @sink.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> The synchronisation offset.
</return>
</function>

<function name="gst_base_sink_is_async_enabled">
<description>
Checks if @sink is currently configured to perform asynchronous state
changes to PAUSED.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the sink is configured to perform asynchronous state
changes.
</return>
</function>

<function name="gst_base_sink_is_last_sample_enabled">
<description>
Checks if @sink is currently configured to store the last received sample in
the last-sample property.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the sink is configured to store the last received sample.
</return>
</function>

<function name="gst_base_sink_is_qos_enabled">
<description>
Checks if @sink is currently configured to send Quality-of-Service events
upstream.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the sink is configured to perform Quality-of-Service.
</return>
</function>

<function name="gst_base_sink_query_latency">
<description>
Query the sink for the latency parameters. The latency will be queried from
the upstream elements. @live will be TRUE if @sink is configured to
synchronize against the clock. @upstream_live will be TRUE if an upstream
element is live.

If both @live and @upstream_live are TRUE, the sink will want to compensate
for the latency introduced by the upstream elements by setting the
@min_latency to a strictly possitive value.

This function is mostly used by subclasses.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="live">
<parameter_description> if the sink is live
</parameter_description>
</parameter>
<parameter name="upstream_live">
<parameter_description> if an upstream element is live
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> the min latency of the upstream elements
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> the max latency of the upstream elements
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query succeeded.
</return>
</function>

<function name="gst_base_sink_set_async_enabled">
<description>
Configures @sink to perform all state changes asynchronusly. When async is
disabled, the sink will immediately go to PAUSED instead of waiting for a
preroll buffer. This feature is useful if the sink does not synchronize
against the clock or when it is dealing with sparse streams.

</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> the new async value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_blocksize">
<description>
Set the number of bytes that the sink will pull when it is operating in pull
mode.

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
<parameter name="blocksize">
<parameter_description> the blocksize in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_last_sample_enabled">
<description>
Configures @sink to store the last received sample in the last-sample
property.

</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> the new enable-last-sample value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_max_bitrate">
<description>
Set the maximum amount of bits per second that the sink will render.


</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
<parameter name="max_bitrate">
<parameter_description> the max_bitrate in bits per second
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_max_lateness">
<description>
Sets the new max lateness value to @max_lateness. This value is
used to decide if a buffer should be dropped or not based on the
buffer timestamp and the current clock time. A value of -1 means
an unlimited time.

</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="max_lateness">
<parameter_description> the new max lateness value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_qos_enabled">
<description>
Configures @sink to send Quality-of-Service events upstream.

</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> the new qos value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_render_delay">
<description>
Set the render delay in @sink to @delay. The render delay is the time
between actual rendering of a buffer and its synchronisation time. Some
devices might delay media rendering which can be compensated for with this
function.

After calling this function, this sink will report additional latency and
other sinks will adjust their latency to delay the rendering of their media.

This function is usually called by subclasses.

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
<parameter name="delay">
<parameter_description> the new delay
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_sync">
<description>
Configures @sink to synchronize on the clock or not. When
@sync is FALSE, incoming samples will be played as fast as
possible. If @sync is TRUE, the timestamps of the incomming
buffers will be used to schedule the exact render time of its
contents.

</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="sync">
<parameter_description> the new sync value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_throttle_time">
<description>
Set the time that will be inserted between rendered buffers. This
can be used to control the maximum buffers per second that the sink
will render. 

</description>
<parameters>
<parameter name="sink">
<parameter_description> a #GstBaseSink
</parameter_description>
</parameter>
<parameter name="throttle">
<parameter_description> the throttle time in nanoseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_set_ts_offset">
<description>
Adjust the synchronisation of @sink with @offset. A negative value will
render buffers earlier than their timestamp. A positive value will delay
rendering. This function can be used to fix playback of badly timestamped
buffers.

</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the new offset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_sink_wait">
<description>
This function will wait for preroll to complete and will then block until @time
is reached. It is usually called by subclasses that use their own internal
synchronisation but want to let some synchronization (like EOS) be handled
by the base class.

This function should only be called with the PREROLL_LOCK held (like when
receiving an EOS event in the ::event vmethod or when handling buffers in
::render).

The @time argument should be the running_time of when the timeout should happen
and will be adjusted with any latency and offset configured in the sink.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the running_time to be reached
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> the jitter to be filled with time diff, or NULL
</parameter_description>
</parameter>
</parameters>
<return> #GstFlowReturn
</return>
</function>

<function name="gst_base_sink_wait_clock">
<description>
This function will block until @time is reached. It is usually called by
subclasses that use their own internal synchronisation.

If @time is not valid, no sycnhronisation is done and #GST_CLOCK_BADTIME is
returned. Likewise, if synchronisation is disabled in the element or there
is no clock, no synchronisation is done and #GST_CLOCK_BADTIME is returned.

This function should only be called with the PREROLL_LOCK held, like when
receiving an EOS event in the #GstBaseSinkClass.event() vmethod or when
receiving a buffer in
the #GstBaseSinkClass.render() vmethod.

The @time argument should be the running_time of when this method should
return and is not adjusted with any latency or offset configured in the
sink.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the running_time to be reached
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> the jitter to be filled with time diff, or NULL
</parameter_description>
</parameter>
</parameters>
<return> #GstClockReturn
</return>
</function>

<function name="gst_base_sink_wait_preroll">
<description>
If the #GstBaseSinkClass.render() method performs its own synchronisation
against the clock it must unblock when going from PLAYING to the PAUSED state
and call this method before continuing to render the remaining data.

This function will block until a state change to PLAYING happens (in which
case this function returns #GST_FLOW_OK) or the processing must be stopped due
to a state change to READY or a FLUSH event (in which case this function
returns #GST_FLOW_FLUSHING).

This function should only be called with the PREROLL_LOCK held, like in the
render function.


</description>
<parameters>
<parameter name="sink">
<parameter_description> the sink
</parameter_description>
</parameter>
</parameters>
<return> #GST_FLOW_OK if the preroll completed and processing can
continue. Any other return value should be returned from the render vmethod.
</return>
</function>

<function name="gst_base_src_get_allocator">
<description>
Lets #GstBaseSrc sub-classes to know the memory @allocator
used by the base class and its @params.

Unref the @allocator after use it.

</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstBaseSrc
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the #GstAllocator
used
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> the
#GstAllocatorParams of @allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_get_blocksize">
<description>
Get the number of bytes that @src will push out with each buffer.


</description>
<parameters>
<parameter name="src">
<parameter_description> the source
</parameter_description>
</parameter>
</parameters>
<return> the number of bytes pushed with each buffer.
</return>
</function>

<function name="gst_base_src_get_buffer_pool">
<description>

</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstBaseSrc
</parameter_description>
</parameter>
</parameters>
<return> the instance of the #GstBufferPool used
by the src; free it after use it
</return>
</function>

<function name="gst_base_src_get_do_timestamp">
<description>
Query if @src timestamps outgoing buffers based on the current running_time.


</description>
<parameters>
<parameter name="src">
<parameter_description> the source
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the base class will automatically timestamp outgoing buffers.
</return>
</function>

<function name="gst_base_src_is_async">
<description>
Get the current async behaviour of @src. See also gst_base_src_set_async().


</description>
<parameters>
<parameter name="src">
<parameter_description> base source instance
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @src is operating in async mode.
</return>
</function>

<function name="gst_base_src_is_live">
<description>
Check if an element is in live mode.


</description>
<parameters>
<parameter name="src">
<parameter_description> base source instance
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if element is in live mode.
</return>
</function>

<function name="gst_base_src_new_seamless_segment">
<description>
Prepare a new seamless segment for emission downstream. This function must
only be called by derived sub-classes, and only from the create() function,
as the stream-lock needs to be held.

The format for the new segment will be the current format of the source, as
configured with gst_base_src_set_format()


</description>
<parameters>
<parameter name="src">
<parameter_description> The source
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> The new start value for the segment
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> Stop value for the new segment
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> The new time value for the start of the new segent
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if preparation of the seamless segment succeeded.
</return>
</function>

<function name="gst_base_src_query_latency">
<description>
Query the source for the latency parameters. @live will be TRUE when @src is
configured as a live source. @min_latency will be set to the difference
between the running time and the timestamp of the first buffer.
@max_latency is always the undefined value of -1.

This function is mostly used by subclasses.


</description>
<parameters>
<parameter name="src">
<parameter_description> the source
</parameter_description>
</parameter>
<parameter name="live">
<parameter_description> if the source is live
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> the min latency of the source
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> the max latency of the source
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query succeeded.
</return>
</function>

<function name="gst_base_src_set_async">
<description>
Configure async behaviour in @src, no state change will block. The open,
close, start, stop, play and pause virtual methods will be executed in a
different thread and are thus allowed to perform blocking operations. Any
blocking operation should be unblocked with the unlock vmethod.

</description>
<parameters>
<parameter name="src">
<parameter_description> base source instance
</parameter_description>
</parameter>
<parameter name="async">
<parameter_description> new async mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_set_blocksize">
<description>
Set the number of bytes that @src will push out with each buffer. When
@blocksize is set to -1, a default length will be used.

</description>
<parameters>
<parameter name="src">
<parameter_description> the source
</parameter_description>
</parameter>
<parameter name="blocksize">
<parameter_description> the new blocksize in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_set_caps">
<description>
Set new caps on the basesrc source pad.


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstBaseSrc
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the caps could be set
</return>
</function>

<function name="gst_base_src_set_do_timestamp">
<description>
Configure @src to automatically timestamp outgoing buffers based on the
current running_time of the pipeline. This property is mostly useful for live
sources.

</description>
<parameters>
<parameter name="src">
<parameter_description> the source
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> enable or disable timestamping
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_set_dynamic_size">
<description>
If not @dynamic, size is only updated when needed, such as when trying to
read past current tracked size.  Otherwise, size is checked for upon each
read.

</description>
<parameters>
<parameter name="src">
<parameter_description> base source instance
</parameter_description>
</parameter>
<parameter name="dynamic">
<parameter_description> new dynamic size mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_set_format">
<description>
Sets the default format of the source. This will be the format used
for sending SEGMENT events and for performing seeks.

If a format of GST_FORMAT_BYTES is set, the element will be able to
operate in pull mode if the #GstBaseSrcClass.is_seekable() returns TRUE.

This function must only be called in states &lt; %GST_STATE_PAUSED.

</description>
<parameters>
<parameter name="src">
<parameter_description> base source instance
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_set_live">
<description>
If the element listens to a live source, @live should
be set to %TRUE.

A live source will not produce data in the PAUSED state and
will therefore not be able to participate in the PREROLL phase
of a pipeline. To signal this fact to the application and the
pipeline, the state change return value of the live source will
be GST_STATE_CHANGE_NO_PREROLL.

</description>
<parameters>
<parameter name="src">
<parameter_description> base source instance
</parameter_description>
</parameter>
<parameter name="live">
<parameter_description> new live-mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_start_complete">
<description>
Complete an asynchronous start operation. When the subclass overrides the
start method, it should call gst_base_src_start_complete() when the start
operation completes either from the same thread or from an asynchronous
helper thread.

</description>
<parameters>
<parameter name="basesrc">
<parameter_description> base source instance
</parameter_description>
</parameter>
<parameter name="ret">
<parameter_description> a #GstFlowReturn
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_src_start_wait">
<description>
Wait until the start operation completes.


</description>
<parameters>
<parameter name="basesrc">
<parameter_description> base source instance
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn.
</return>
</function>

<function name="gst_base_src_wait_playing">
<description>
If the #GstBaseSrcClass.create() method performs its own synchronisation
against the clock it must unblock when going from PLAYING to the PAUSED state
and call this method before continuing to produce the remaining data.

This function will block until a state change to PLAYING happens (in which
case this function returns #GST_FLOW_OK) or the processing must be stopped due
to a state change to READY or a FLUSH event (in which case this function
returns #GST_FLOW_FLUSHING).


</description>
<parameters>
<parameter name="src">
<parameter_description> the src
</parameter_description>
</parameter>
</parameters>
<return> #GST_FLOW_OK if @src is PLAYING and processing can
continue. Any other return value should be returned from the create vmethod.
</return>
</function>

<function name="gst_base_transform_get_allocator">
<description>
Lets #GstBaseTransform sub-classes to know the memory @allocator
used by the base class and its @params.

Unref the @allocator after use it.

</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the #GstAllocator
used
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> the
#GstAllocatorParams of @allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_get_buffer_pool">
<description>

</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
</parameters>
<return> the instance of the #GstBufferPool used
by @trans; free it after use it
</return>
</function>

<function name="gst_base_transform_is_in_place">
<description>
See if @trans is configured as a in_place transform.


</description>
<parameters>
<parameter name="trans">
<parameter_description> the #GstBaseTransform to query
</parameter_description>
</parameter>
</parameters>
<return> TRUE is the transform is configured in in_place mode.

MT safe.
</return>
</function>

<function name="gst_base_transform_is_passthrough">
<description>
See if @trans is configured as a passthrough transform.


</description>
<parameters>
<parameter name="trans">
<parameter_description> the #GstBaseTransform to query
</parameter_description>
</parameter>
</parameters>
<return> TRUE is the transform is configured in passthrough mode.

MT safe.
</return>
</function>

<function name="gst_base_transform_is_qos_enabled">
<description>
Queries if the transform will handle QoS.


</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
</parameters>
<return> TRUE if QoS is enabled.

MT safe.
</return>
</function>

<function name="gst_base_transform_reconfigure_sink">
<description>
Instructs @trans to request renegotiation upstream. This function is
typically called after properties on the transform were set that
influence the input format.

</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_reconfigure_src">
<description>
Instructs @trans to renegotiate a new downstream transform on the next
buffer. This function is typically called after properties on the transform
were set that influence the output format.

</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_set_gap_aware">
<description>
If @gap_aware is %FALSE (the default), output buffers will have the
%GST_BUFFER_FLAG_GAP flag unset.

If set to %TRUE, the element must handle output buffers with this flag set
correctly, i.e. it can assume that the buffer contains neutral data but must
unset the flag if the output is no neutral data.

MT safe.

</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
<parameter name="gap_aware">
<parameter_description> New state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_set_in_place">
<description>
Determines whether a non-writable buffer will be copied before passing
to the transform_ip function.
&lt;itemizedlist&gt;
&lt;listitem&gt;Always TRUE if no transform function is implemented.&lt;/listitem&gt;
&lt;listitem&gt;Always FALSE if ONLY transform function is implemented.&lt;/listitem&gt;
&lt;/itemizedlist&gt;

MT safe.

</description>
<parameters>
<parameter name="trans">
<parameter_description> the #GstBaseTransform to modify
</parameter_description>
</parameter>
<parameter name="in_place">
<parameter_description> Boolean value indicating that we would like to operate
on in_place buffers.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_set_passthrough">
<description>
Set passthrough mode for this filter by default. This is mostly
useful for filters that do not care about negotiation.

Always TRUE for filters which don't implement either a transform
or transform_ip method.

MT safe.

</description>
<parameters>
<parameter name="trans">
<parameter_description> the #GstBaseTransform to set
</parameter_description>
</parameter>
<parameter name="passthrough">
<parameter_description> boolean indicating passthrough mode.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_set_prefer_passthrough">
<description>
If @prefer_passthrough is %TRUE (the default), @trans will check and
prefer passthrough caps from the list of caps returned by the
transform_caps vmethod.

If set to %FALSE, the element must order the caps returned from the
transform_caps function in such a way that the prefered format is
first in the list. This can be interesting for transforms that can do
passthrough transforms but prefer to do something else, like a
capsfilter.

MT safe.


</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
<parameter name="prefer_passthrough">
<parameter_description> New state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_set_qos_enabled">
<description>
Enable or disable QoS handling in the transform.

MT safe.

</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_base_transform_update_qos">
<description>
Set the QoS parameters in the transform. This function is called internally
when a QOS event is received but subclasses can provide custom information
when needed.

MT safe.

</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstBaseTransform
</parameter_description>
</parameter>
<parameter name="proportion">
<parameter_description> the proportion
</parameter_description>
</parameter>
<parameter name="diff">
<parameter_description> the diff against the clock
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the timestamp of the buffer generating the QoS expressed in
running_time.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bin_add">
<description>
Adds the given element to the bin.  Sets the element's parent, and thus
takes ownership of the element. An element can only be added to one bin.

If the element's pads are linked to other pads, the pads will be unlinked
before the element is added to the bin.

&lt;note&gt;
When you add an element to an already-running pipeline, you will have to
take care to set the state of the newly-added element to the desired
state (usually PLAYING or PAUSED, same you set the pipeline to originally)
with gst_element_set_state(), or use gst_element_sync_state_with_parent().
The bin or pipeline will not take care of this for you.
&lt;/note&gt;

MT safe.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="element">
<parameter_description> the #GstElement to add
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the element could be added, FALSE if
the bin does not want to accept the element.
</return>
</function>

<function name="gst_bin_add_many">
<description>
Adds a NULL-terminated list of elements to a bin.  This function is
equivalent to calling gst_bin_add() for each member of the list. The return
value of each gst_bin_add() is ignored.

</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="element_1">
<parameter_description> the #GstElement element to add to the bin
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional elements to add to the bin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bin_find_unlinked_pad">
<description>
Recursively looks for elements with an unlinked pad of the given
direction within the specified bin and returns an unlinked pad
if one is found, or NULL otherwise. If a pad is found, the caller
owns a reference to it and should use gst_object_unref() on the
pad when it is not needed any longer.


</description>
<parameters>
<parameter name="bin">
<parameter_description> bin in which to look for elements with unlinked pads
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> whether to look for an unlinked source or sink pad
</parameter_description>
</parameter>
</parameters>
<return> unlinked pad of the given direction, or NULL.
</return>
</function>

<function name="gst_bin_get_by_interface">
<description>
Looks for an element inside the bin that implements the given
interface. If such an element is found, it returns the element.
You can cast this element to the given interface afterwards.  If you want
all elements that implement the interface, use
gst_bin_iterate_all_by_interface(). This function recurses into child bins.

MT safe.  Caller owns returned reference.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="iface">
<parameter_description> the #GType of an interface
</parameter_description>
</parameter>
</parameters>
<return> A #GstElement inside the bin implementing the interface
</return>
</function>

<function name="gst_bin_get_by_name">
<description>
Gets the element with the given name from a bin. This
function recurses into child bins.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the element name to search for
</parameter_description>
</parameter>
</parameters>
<return> the #GstElement with the given name, or NULL
</return>
</function>

<function name="gst_bin_get_by_name_recurse_up">
<description>
Gets the element with the given name from this bin. If the
element is not found, a recursion is performed on the parent bin.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the element name to search for
</parameter_description>
</parameter>
</parameters>
<return> the #GstElement with the given name, or NULL
</return>
</function>

<function name="gst_bin_iterate_all_by_interface">
<description>
Looks for all elements inside the bin that implements the given
interface. You can safely cast all returned elements to the given interface.
The function recurses inside child bins. The iterator will yield a series
of #GstElement that should be unreffed after use.

MT safe.  Caller owns returned value.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="iface">
<parameter_description> the #GType of an interface
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstElement for all elements
in the bin implementing the given interface, or NULL
</return>
</function>

<function name="gst_bin_iterate_elements">
<description>
Gets an iterator for the elements in this bin.

MT safe.  Caller owns returned value.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstElement, or NULL
</return>
</function>

<function name="gst_bin_iterate_recurse">
<description>
Gets an iterator for the elements in this bin.
This iterator recurses into GstBin children.

MT safe.  Caller owns returned value.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstElement, or NULL
</return>
</function>

<function name="gst_bin_iterate_sinks">
<description>
Gets an iterator for all elements in the bin that have the
#GST_ELEMENT_FLAG_SINK flag set.

MT safe.  Caller owns returned value.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstElement, or NULL
</return>
</function>

<function name="gst_bin_iterate_sorted">
<description>
Gets an iterator for the elements in this bin in topologically
sorted order. This means that the elements are returned from
the most downstream elements (sinks) to the sources.

This function is used internally to perform the state changes
of the bin elements and for clock selection.

MT safe.  Caller owns returned value.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstElement, or NULL
</return>
</function>

<function name="gst_bin_iterate_sources">
<description>
Gets an iterator for all elements in the bin that have the
#GST_ELEMENT_FLAG_SOURCE flag set.

MT safe.  Caller owns returned value.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstElement, or NULL
</return>
</function>

<function name="gst_bin_new">
<description>
Creates a new bin with the given name.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the new bin
</parameter_description>
</parameter>
</parameters>
<return> a new #GstBin
</return>
</function>

<function name="gst_bin_recalculate_latency">
<description>
Query @bin for the current latency using and reconfigures this latency to all the
elements with a LATENCY event.

This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
is posted on the bus.

This function simply emits the 'do-latency' signal so any custom latency
calculations will be performed.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the latency could be queried and reconfigured.
</return>
</function>

<function name="gst_bin_remove">
<description>
Removes the element from the bin, unparenting it as well.
Unparenting the element means that the element will be dereferenced,
so if the bin holds the only reference to the element, the element
will be freed in the process of removing it from the bin.  If you
want the element to still exist after removing, you need to call
gst_object_ref() before removing it from the bin.

If the element's pads are linked to other pads, the pads will be unlinked
before the element is removed from the bin.

MT safe.


</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="element">
<parameter_description> the #GstElement to remove
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the element could be removed, FALSE if
the bin does not want to remove the element.
</return>
</function>

<function name="gst_bin_remove_many">
<description>
Remove a list of elements from a bin. This function is equivalent
to calling gst_bin_remove() with each member of the list.

</description>
<parameters>
<parameter name="bin">
<parameter_description> a #GstBin
</parameter_description>
</parameter>
<parameter name="element_1">
<parameter_description> the first #GstElement to remove from the bin
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> NULL-terminated list of elements to remove from the bin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bit_reader_free">
<description>
Frees a #GstBitReader instance, which was previously allocated by
gst_bit_reader_new().

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bit_reader_get_bits_uint16">
<description>
Read @nbits bits into @val and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint16 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_get_bits_uint16_unchecked">
<description>
Read @nbits bits into @val and update the current position without
checking if there are enough bits available in the bit reader.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 16 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_get_bits_uint32">
<description>
Read @nbits bits into @val and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_get_bits_uint32_unchecked">
<description>
Read @nbits bits into @val and update the current position without
checking if there are enough bits available in the bit reader.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 32 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_get_bits_uint64">
<description>
Read @nbits bits into @val and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint64 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_get_bits_uint64_unchecked">
<description>
Read @nbits bits into @val and update the current position without
checking if there are enough bits available in the bit reader.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 64 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_get_bits_uint8">
<description>
Read @nbits bits into @val and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint8 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_get_bits_uint8_unchecked">
<description>
Read @nbits bits into @val and update the current position without
checking if there are enough bits available in the bit reader.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 8 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_get_pos">
<description>
Returns the current position of a #GstBitReader instance in bits.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
</parameters>
<return> The current position of @reader in bits.
</return>
</function>

<function name="gst_bit_reader_get_remaining">
<description>
Returns the remaining number of bits of a #GstBitReader instance.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
</parameters>
<return> The remaining number of bits of @reader instance.
</return>
</function>

<function name="gst_bit_reader_get_size">
<description>
Returns the total number of bits of a #GstBitReader instance.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
</parameters>
<return> The total number of bits of @reader instance.
</return>
</function>

<function name="gst_bit_reader_init">
<description>
Initializes a #GstBitReader instance to read from @data. This function
can be called on already initialized instances.

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data from which the bit reader should read
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bit_reader_new">
<description>
Create a new #GstBitReader instance, which will read from @data.

Free-function: gst_bit_reader_free


</description>
<parameters>
<parameter name="data">
<parameter_description> Data from which the #GstBitReader
should read
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
</parameters>
<return> a new #GstBitReader instance
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint16">
<description>
Read @nbits bits into @val but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint16 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint16_unchecked">
<description>
Read @nbits bits into @val but keep the current position without
checking if there are enough bits available in the bit reader


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 16 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint32">
<description>
Read @nbits bits into @val but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint32_unchecked">
<description>
Read @nbits bits into @val but keep the current position without
checking if there are enough bits available in the bit reader


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 32 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint64">
<description>
Read @nbits bits into @val but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint64 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint64_unchecked">
<description>
Read @nbits bits into @val but keep the current position without
checking if there are enough bits available in the bit reader


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 64 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint8">
<description>
Read @nbits bits into @val but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint8 to store the result
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_peek_bits_uint8_unchecked">
<description>
Read @nbits bits into @val but keep the current position without
checking if there are enough bits available in the bit reader


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> number of bits to read
</parameter_description>
</parameter>
</parameters>
<return> unsigned 8 bit integer with the bits.
</return>
</function>

<function name="gst_bit_reader_set_pos">
<description>
Sets the new position of a #GstBitReader instance to @pos in bits.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> The new position in bits
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the position could be set successfully, %FALSE
otherwise.
</return>
</function>

<function name="gst_bit_reader_skip">
<description>
Skips @nbits bits of the #GstBitReader instance.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> the number of bits to skip
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @nbits bits could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_skip_to_byte">
<description>
Skips until the next byte.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_bit_reader_skip_to_byte_unchecked">
<description>
Skips until the next byte without checking if there are enough bits
available in the bit reader.

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bit_reader_skip_unchecked">
<description>
Skips @nbits bits of the #GstBitReader instance without checking if there
are enough bits available in the bit reader.

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstBitReader instance
</parameter_description>
</parameter>
<parameter name="nbits">
<parameter_description> the number of bits to skip
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_add_audio_downmix_meta">
<description>
Attaches GstAudioDownmixMeta metadata to @buffer with the given parameters.

@matrix is an two-dimensional array of @to_channels times @from_channels
coefficients, i.e. the i-th output channels is constructed by multiplicating
the input channels with the coefficients in @matrix[i] and taking the sum
of the results.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="from_position">
<parameter_description> the channel positions
of the source
</parameter_description>
</parameter>
<parameter name="from_channels">
<parameter_description> The number of channels of the source
</parameter_description>
</parameter>
<parameter name="to_position">
<parameter_description> the channel positions of
the destination
</parameter_description>
</parameter>
<parameter name="to_channels">
<parameter_description> The number of channels of the destination
</parameter_description>
</parameter>
<parameter name="matrix">
<parameter_description> The matrix coefficients.
</parameter_description>
</parameter>
</parameters>
<return> the #GstAudioDownmixMeta on @buffer.
</return>
</function>

<function name="gst_buffer_add_meta">
<description>
Add metadata for @info to @buffer using the parameters in @params.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstMetaInfo
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> params for @info
</parameter_description>
</parameter>
</parameters>
<return> the metadata for the api in @info on @buffer.
</return>
</function>

<function name="gst_buffer_add_video_gl_texture_upload_meta">
<description>
Attaches GstVideoGLTextureUploadMeta metadata to @buffer with the given
parameters.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="upload">
<parameter_description> the function to upload the buffer to a specific texture ID
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data for the implementor of @upload
</parameter_description>
</parameter>
<parameter name="user_data_copy">
<parameter_description> function to copy @user_data
</parameter_description>
</parameter>
<parameter name="user_data_free">
<parameter_description> function to free @user_data
</parameter_description>
</parameter>
</parameters>
<return> the #GstVideoGLTextureUploadMeta on @buffer.
</return>
</function>

<function name="gst_buffer_add_video_meta">
<description>
Attaches GstVideoMeta metadata to @buffer with the given parameters and the
default offsets and strides for @format and @width x @height.

This function calculates the default offsets and strides and then calls
gst_buffer_add_video_meta_full() with them.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstVideoFrameFlags
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> a #GstVideoFormat
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height
</parameter_description>
</parameter>
</parameters>
<return> the #GstVideoMeta on @buffer.
</return>
</function>

<function name="gst_buffer_add_video_meta_full">
<description>
Attaches GstVideoMeta metadata to @buffer with the given parameters.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstVideoFrameFlags
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> a #GstVideoFormat
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height
</parameter_description>
</parameter>
<parameter name="n_planes">
<parameter_description> number of planes
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset of each plane
</parameter_description>
</parameter>
<parameter name="stride">
<parameter_description> stride of each plane
</parameter_description>
</parameter>
</parameters>
<return> the #GstVideoMeta on @buffer.
</return>
</function>

<function name="gst_buffer_add_video_overlay_composition_meta">
<description>
Sets an overlay composition on a buffer. The buffer will obtain its own
reference to the composition, meaning this function does not take ownership
of @comp.

</description>
<parameters>
<parameter name="buf">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_append">
<description>
Append all the memory from @buf2 to @buf1. The result buffer will contain a
concatenation of the memory of @buf1 and @buf2.


</description>
<parameters>
<parameter name="buf1">
<parameter_description> the first source #GstBuffer to append.
</parameter_description>
</parameter>
<parameter name="buf2">
<parameter_description> the second source #GstBuffer to append.
</parameter_description>
</parameter>
</parameters>
<return> the new #GstBuffer that contains the memory
of the two source buffers.
</return>
</function>

<function name="gst_buffer_append_memory">
<description>
Append the memory block @mem to @buffer. This function takes
ownership of @mem and thus doesn't increase its refcount.

This function is identical to gst_buffer_insert_memory() with an index of -1.
See gst_buffer_insert_memory() for more details.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> a #GstMemory.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_append_region">
<description>
Append @size bytes at @offset from @buf2 to @buf1. The result buffer will
contain a concatenation of the memory of @buf1 and the requested region of
@buf2.


</description>
<parameters>
<parameter name="buf1">
<parameter_description> the first source #GstBuffer to append.
</parameter_description>
</parameter>
<parameter name="buf2">
<parameter_description> the second source #GstBuffer to append.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset in @buf2
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size or -1 of @buf2
</parameter_description>
</parameter>
</parameters>
<return> the new #GstBuffer that contains the memory
of the two source buffers.
</return>
</function>

<function name="gst_buffer_copy">
<description>
Create a copy of the given buffer. This will also make a newly allocated
copy of the data the source buffer contains.


</description>
<parameters>
<parameter name="buf">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
</parameters>
<return> a new copy of @buf.
</return>
</function>

<function name="gst_buffer_copy_into">
<description>
Copies the information from @src into @dest.

If @dest already contains memory and @flags contains GST_BUFFER_COPY_MEMORY,
the memory from @src will be appended to @dest.

@flags indicate which fields will be copied.


</description>
<parameters>
<parameter name="dest">
<parameter_description> a destination #GstBuffer
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> a source #GstBuffer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags indicating what metadata fields should be copied.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset to copy from
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> total size to copy. If -1, all data is copied.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the copying succeeded, %FALSE otherwise.
</return>
</function>

<function name="gst_buffer_copy_region">
<description>
Creates a sub-buffer from @parent at @offset and @size.
This sub-buffer uses the actual memory space of the parent buffer.
This function will copy the offset and timestamp fields when the
offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and 
#GST_BUFFER_OFFSET_NONE.
If @offset equals 0 and @size equals the total size of @buffer, the
duration and offset end fields are also copied. If not they will be set
to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.

MT safe.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the #GstBufferCopyFlags
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset into parent #GstBuffer at which the new sub-buffer 
begins.
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the new #GstBuffer sub-buffer, in bytes.
</parameter_description>
</parameter>
</parameters>
<return> the new #GstBuffer or NULL if the arguments were
invalid.
</return>
</function>

<function name="gst_buffer_extract">
<description>
Copy @size bytes starting from @offset in @buffer to @dest.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset to extract
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> the destination address
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size to extract
</parameter_description>
</parameter>
</parameters>
<return> The amount of bytes extracted. This value can be lower than @size
when @buffer did not contain enough data.
</return>
</function>

<function name="gst_buffer_extract_dup">
<description>
Extracts a copy of at most @size bytes the data at @offset into a #GBytes.
@dest must be freed using g_free() when done.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset to extract
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size to extract
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> A pointer where
the destination array will be written.
</parameter_description>
</parameter>
<parameter name="dest_size">
<parameter_description> A location where the size of @dest can be written
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_fill">
<description>
Copy @size bytes from @src to @buffer at @offset.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset to fill
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> the source address
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size to fill
</parameter_description>
</parameter>
</parameters>
<return> The amount of bytes copied. This value can be lower than @size
when @buffer did not contain enough data.
</return>
</function>

<function name="gst_buffer_find_memory">
<description>
Find the memory blocks that span @size bytes starting from @offset
in @buffer.

When this function returns %TRUE, @idx will contain the index of the first
memory bock where the byte for @offset can be found and @length contains the
number of memory blocks containing the @size remaining bytes. @skip contains
the number of bytes to skip in the memory bock at @idx to get to the byte
for @offset.

@size can be -1 to get all the memory blocks after @idx.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> an offset
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> a size
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> pointer to index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> pointer to length
</parameter_description>
</parameter>
<parameter name="skip">
<parameter_description> pointer to skip
</parameter_description>
</parameter>
</parameters>
<return> %TRUE when @size bytes starting from @offset could be found in
@buffer and @idx, @length and @skip will be filled.
</return>
</function>

<function name="gst_buffer_foreach_meta">
<description>
Call @func with @user_data for each meta in @buffer.

@func can modify the passed meta pointer or its contents. The return value
of @func define if this function returns or if the remaining metadata items
in the buffer should be skipped.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GstBufferForeachMetaFunc to call
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @func
</parameter_description>
</parameter>
</parameters>
<return> %FALSE when @func returned %FALSE for one of the metadata.
</return>
</function>

<function name="gst_buffer_get_all_memory">
<description>
Get all the memory block in @buffer. The memory blocks will be merged
into one large #GstMemory.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
</parameters>
<return> a #GstMemory that contains the merged memory.
Use gst_memory_unref () after usage.
</return>
</function>

<function name="gst_buffer_get_audio_downmix_meta_for_channels">
<description>
Find the #GstAudioDownmixMeta on @buffer for the given destination
channel positions.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="to_position">
<parameter_description> the channel positions of
the destination
</parameter_description>
</parameter>
<parameter name="to_channels">
<parameter_description> The number of channels of the destination
</parameter_description>
</parameter>
</parameters>
<return> the #GstAudioDownmixMeta on @buffer.
</return>
</function>

<function name="gst_buffer_get_max_memory">
<description>
Get the maximum amount of memory blocks that a buffer can hold. This is a
compile time constant that can be queried with the function.

When more memory blocks are added, existing memory blocks will be merged
together to make room for the new block.


</description>
<parameters>
</parameters>
<return> the maximum amount of memory blocks that a buffer can hold.

</return>
</function>

<function name="gst_buffer_get_memory">
<description>
Get the memory block at index @idx in @buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> a #GstMemory that contains the data of the
memory block at @idx. Use gst_memory_unref () after usage.
</return>
</function>

<function name="gst_buffer_get_memory_range">
<description>
Get @length memory blocks in @buffer starting at @idx. The memory blocks will
be merged into one large #GstMemory.

If @length is -1, all memory starting from @idx is merged.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> a length
</parameter_description>
</parameter>
</parameters>
<return> a #GstMemory that contains the merged data of @length
blocks starting at @idx. Use gst_memory_unref () after usage.
</return>
</function>

<function name="gst_buffer_get_meta">
<description>
Get the metadata for @api on buffer. When there is no such
metadata, NULL is returned.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="api">
<parameter_description> the #GType of an API
</parameter_description>
</parameter>
</parameters>
<return> the metadata for @api on @buffer.
</return>
</function>

<function name="gst_buffer_get_size">
<description>
Get the total size of the memory blocks in @buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
</parameters>
<return> total size of the memory blocks in @buffer.
</return>
</function>

<function name="gst_buffer_get_sizes">
<description>
Get the total size of the memory blocks in @b.

When not %NULL, @offset will contain the offset of the data in the
first memory block in @buffer and @maxsize will contain the sum of
the size and @offset and the amount of extra padding on the last
memory block.  @offset and @maxsize can be used to resize the
buffer memory blocks with gst_buffer_resize().


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> a pointer to the offset
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> a pointer to the maxsize
</parameter_description>
</parameter>
</parameters>
<return> total size of the memory blocks in @buffer.
</return>
</function>

<function name="gst_buffer_get_sizes_range">
<description>
Get the total size of @length memory blocks stating from @idx in @buffer.

When not %NULL, @offset will contain the offset of the data in the
memory block in @buffer at @idx and @maxsize will contain the sum of the size
and @offset and the amount of extra padding on the memory block at @idx +
@length -1.
@offset and @maxsize can be used to resize the buffer memory blocks with
gst_buffer_resize_range().


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> a length
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> a pointer to the offset
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> a pointer to the maxsize
</parameter_description>
</parameter>
</parameters>
<return> total size of @length memory blocks starting at @idx in @buffer.
</return>
</function>

<function name="gst_buffer_get_video_meta_id">
<description>
Find the #GstVideoMeta on @buffer with the given @id.

Buffers can contain multiple #GstVideoMeta metadata items when dealing with
multiview buffers.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a metadata id
</parameter_description>
</parameter>
</parameters>
<return> the #GstVideoMeta with @id or %NULL when there is no such metadata
on @buffer.
</return>
</function>

<function name="gst_buffer_insert_memory">
<description>
Insert the memory block @mem to @buffer at @idx. This function takes ownership
of @mem and thus doesn't increase its refcount.

Only gst_buffer_get_max_memory() can be added to a buffer. If more memory is
added, existing memory blocks will automatically be merged to make room for
the new memory.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index to add the memory at, or -1 to append it to the end
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> a #GstMemory.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_is_writable">
<description>
Tests if you can safely write to a buffer's metadata or its memory array.
It is only safe to change buffer metadata when the current reference is
writable, i.e. nobody can see the modifications you will make.

</description>
<parameters>
<parameter name="buf">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_iterate_meta">
<description>
Retrieve the next #GstMeta after @current. If @state points
to %NULL, the first metadata is returned.

@state will be updated with an opage state pointer 


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> an opaque state pointer
</parameter_description>
</parameter>
</parameters>
<return> The next #GstMeta or %NULL when there are
no more items.
</return>
</function>

<function name="gst_buffer_list_add">
<description>
Append @b at the end of @l.

</description>
<parameters>
<parameter name="l">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_list_copy">
<description>
Create a shallow copy of the given buffer list. This will make a newly
allocated copy of the source list with copies of buffer pointers. The
refcount of buffers pointed to will be increased by one.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return> a new copy of @list.
</return>
</function>

<function name="gst_buffer_list_foreach">
<description>
Call @func with @data for each buffer in @list.

@func can modify the passed buffer pointer or its contents. The return value
of @func define if this function returns or if the remaining buffers in
the list should be skipped.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GstBufferListFunc to call
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @func
</parameter_description>
</parameter>
</parameters>
<return> %TRUE when @func returned %TRUE for each buffer in @list or when
@list is empty.
</return>
</function>

<function name="gst_buffer_list_get">
<description>
Get the buffer at @idx.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> the buffer at @idx in @group or NULL when there
is no buffer. The buffer remains valid as long as @list is valid.
</return>
</function>

<function name="gst_buffer_list_insert">
<description>
Insert @buffer at @idx in @list. Other buffers are moved to make room for
this new buffer.

A -1 value for @idx will append the buffer at the end.

</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_list_is_writable">
<description>
Tests if you can safely add buffers and groups into a buffer list.

</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_list_length">
<description>
Returns the number of buffers in @list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return> the number of buffers in the buffer list
</return>
</function>

<function name="gst_buffer_list_make_writable">
<description>
Makes a writable buffer list from the given buffer list. If the source buffer
list is already writable, this will simply return the same buffer list. A
copy will otherwise be made using gst_buffer_list_copy().


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return> a writable list, which may or may not be the
same as @list
</return>
</function>

<function name="gst_buffer_list_new">
<description>
Creates a new, empty #GstBufferList. The caller is responsible for unreffing
the returned #GstBufferList.

Free-function: gst_buffer_list_unref


</description>
<parameters>
</parameters>
<return> the new #GstBufferList. gst_buffer_list_unref()
after usage.
</return>
</function>

<function name="gst_buffer_list_new_sized">
<description>
Creates a new, empty #GstBufferList. The caller is responsible for unreffing
the returned #GstBufferList. The list will have @size space preallocated so
that memory reallocations can be avoided.

Free-function: gst_buffer_list_unref


</description>
<parameters>
<parameter name="size">
<parameter_description> an initial reserved size
</parameter_description>
</parameter>
</parameters>
<return> the new #GstBufferList. gst_buffer_list_unref()
after usage.
</return>
</function>

<function name="gst_buffer_list_ref">
<description>
Increases the refcount of the given buffer list by one.

Note that the refcount affects the writeability of @list and its data, see
gst_buffer_list_make_writable(). It is important to note that keeping
additional references to GstBufferList instances can potentially increase
the number of memcpy operations in a pipeline.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return> @list
</return>
</function>

<function name="gst_buffer_list_remove">
<description>
Remove @length buffers starting from @idx in @list. The following buffers are
moved to close the gap.

</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the amount to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_list_unref">
<description>
Decreases the refcount of the buffer list. If the refcount reaches 0, the
buffer list will be freed.

</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_make_writable">
<description>
Makes a writable buffer from the given buffer. If the source buffer is
already writable, this will simply return the same buffer. A copy will
otherwise be made using gst_buffer_copy().


</description>
<parameters>
<parameter name="buf">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
</parameters>
<return> a writable buffer which may or may not be the
same as @buf
</return>
</function>

<function name="gst_buffer_map">
<description>
This function fills @info with the #GstMapInfo of all merged memory
blocks in @buffer.

@flags describe the desired access of the memory. When @flags is
#GST_MAP_WRITE, @buffer should be writable (as returned from
gst_buffer_is_writable()).

When @buffer is writable but the memory isn't, a writable copy will
automatically be created and returned. The readonly copy of the
buffer memory will then also be replaced with this writable copy.

The memory in @info should be unmapped with gst_buffer_unmap() after
usage.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> info about the mapping
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags for the mapping
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the map succeeded and @info contains valid data.
</return>
</function>

<function name="gst_buffer_map_range">
<description>
This function fills @info with the #GstMapInfo of @length merged memory blocks
starting at @idx in @buffer. When @length is -1, all memory blocks starting
from @idx are merged and mapped.

@flags describe the desired access of the memory. When @flags is
#GST_MAP_WRITE, @buffer should be writable (as returned from
gst_buffer_is_writable()).

When @buffer is writable but the memory isn't, a writable copy will
automatically be created and returned. The readonly copy of the buffer memory
will then also be replaced with this writable copy.

The memory in @info should be unmapped with gst_buffer_unmap() after usage.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> a length
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> info about the mapping
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags for the mapping
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the map succeeded and @info contains valid
data.
</return>
</function>

<function name="gst_buffer_memcmp">
<description>
Compare @size bytes starting from @offset in @buffer with the memory in @mem.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset in @buffer
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> the memory to compare
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size to compare
</parameter_description>
</parameter>
</parameters>
<return> 0 if the memory is equal.
</return>
</function>

<function name="gst_buffer_memset">
<description>
Fill @buf with @size bytes with @val starting from @offset.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset in @buffer
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> the value to set
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size to set
</parameter_description>
</parameter>
</parameters>
<return> The amount of bytes filled. This value can be lower than @size
when @buffer did not contain enough data.
</return>
</function>

<function name="gst_buffer_n_memory">
<description>
Get the amount of memory blocks that this buffer has. This amount is never
larger than what gst_buffer_get_max_memory() returns.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
</parameters>
<return> the amount of memory block in this buffer.
</return>
</function>

<function name="gst_buffer_new">
<description>
Creates a newly allocated buffer without any data.

MT safe.


</description>
<parameters>
</parameters>
<return> the new #GstBuffer.
</return>
</function>

<function name="gst_buffer_new_allocate">
<description>
Tries to create a newly allocated buffer with data of the given size and
extra parameters from @allocator. If the requested amount of memory can't be
allocated, NULL will be returned. The allocated buffer memory is not cleared.

When @allocator is NULL, the default memory allocator will be used.

Note that when @size == 0, the buffer will not have memory associated with it.

MT safe.


</description>
<parameters>
<parameter name="allocator">
<parameter_description> the #GstAllocator to use, or NULL to use the
default allocator
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size in bytes of the new buffer's data.
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> optional parameters
</parameter_description>
</parameter>
</parameters>
<return> a new #GstBuffer, or NULL if the memory couldn't
be allocated.
</return>
</function>

<function name="gst_buffer_new_wrapped">
<description>
Creates a new buffer that wraps the given @data. The memory will be freed
with g_free and will be marked writable.

MT safe.


</description>
<parameters>
<parameter name="data">
<parameter_description> data to wrap
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> allocated size of @data
</parameter_description>
</parameter>
</parameters>
<return> a new #GstBuffer
</return>
</function>

<function name="gst_buffer_new_wrapped_full">
<description>
Allocate a new buffer that wraps the given memory. @data must point to
@maxsize of memory, the wrapped buffer will have the region from @offset and
@size visible.

When the buffer is destroyed, @notify will be called with @user_data.

The prefix/padding must be filled with 0 if @flags contains
#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.


</description>
<parameters>
<parameter name="flags">
<parameter_description> #GstMemoryFlags
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to wrap
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> allocated size of @data
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset in @data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of valid data
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> called with @user_data when the memory is freed
</parameter_description>
</parameter>
</parameters>
<return> a new #GstBuffer
</return>
</function>

<function name="gst_buffer_peek_memory">
<description>
Get the memory block at @idx in @buffer. The memory block stays valid until
the memory block in @buffer is removed, replaced or merged, typically with
any call that modifies the memory in @buffer.

Since this call does not influence the refcount of the memory,
gst_memory_is_writable() can be used to check if @buffer is the sole owner
of the returned memory.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> the #GstMemory at @idx.
</return>
</function>

<function name="gst_buffer_pool_acquire_buffer">
<description>
Acquire a buffer from @pool. @buffer should point to a memory location that
can hold a pointer to the new buffer.

@params can be NULL or contain optional parameters to influence the allocation.


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a location for a #GstBuffer
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> (transfer none) (allow-none) parameters.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn such as GST_FLOW_FLUSHING when the pool is
inactive.
</return>
</function>

<function name="gst_buffer_pool_config_add_option">
<description>
Enabled the option in @config. This will instruct the @bufferpool to enable
the specified option on the buffers that it allocates.

The supported options by @pool can be retrieved with gst_buffer_pool_get_options().

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
<parameter name="option">
<parameter_description> an option to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_pool_config_get_allocator">
<description>
Get the allocator and params from @config.

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> a #GstAllocator
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> #GstAllocationParams
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_pool_config_get_option">
<description>
Parse an available @config and get the option
at @index of the options API array.


</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the option array to read
</parameter_description>
</parameter>
</parameters>
<return> a #gchar of the option at @index.
</return>
</function>

<function name="gst_buffer_pool_config_get_params">
<description>
Get the configuration values from @config.


</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the caps of buffers
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of each buffer, not including prefix and padding
</parameter_description>
</parameter>
<parameter name="min_buffers">
<parameter_description> the minimum amount of buffers to allocate.
</parameter_description>
</parameter>
<parameter name="max_buffers">
<parameter_description> the maximum amount of buffers to allocate or 0 for unlimited.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if all parameters could be fetched.
</return>
</function>

<function name="gst_buffer_pool_config_get_video_alignment">
<description>
Get the video alignment from the bufferpool configuration @config in
in @align


</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> a #GstVideoAlignment
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if @config could be parsed correctly.
</return>
</function>

<function name="gst_buffer_pool_config_has_option">
<description>
Check if @config contains @option


</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
<parameter name="option">
<parameter_description> an option
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the options array contains @option.
</return>
</function>

<function name="gst_buffer_pool_config_n_options">
<description>
Retrieve the number of values currently stored in the
options array of the @config structure.


</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
</parameters>
<return> the options array size as a #guint.
</return>
</function>

<function name="gst_buffer_pool_config_set_allocator">
<description>
Set the @allocator and @params on @config.

One of @allocator and @params can be NULL, but not both. When @allocator
is NULL, the default allocator of the pool will use the values in @param
to perform its allocation. When @param is NULL, the pool will use the
provided allocator with its default #GstAllocationParams.

A call to gst_buffer_pool_set_config() can update the allocator and params
with the values that it is able to do. Some pools are, for example, not able
to operate with different allocators or cannot allocate with the values
specified in @params. Use gst_buffer_pool_get_config() to get the currently
used values.

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> a #GstAllocator
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> #GstAllocationParams
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_pool_config_set_params">
<description>
Configure @config with the given parameters.

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstBufferPool configuration
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> caps for the buffers
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of each buffer, not including prefix and padding
</parameter_description>
</parameter>
<parameter name="min_buffers">
<parameter_description> the minimum amount of buffers to allocate.
</parameter_description>
</parameter>
<parameter name="max_buffers">
<parameter_description> the maximum amount of buffers to allocate or 0 for unlimited.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_pool_config_set_video_alignment">
<description>
Set the video alignment in @align to the bufferpool configuration
@config

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> a #GstVideoAlignment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_pool_get_config">
<description>
Get a copy of the current configuration of the pool. This configuration
can either be modified and used for the gst_buffer_pool_set_config() call
or it must be freed after usage.


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
</parameters>
<return> a copy of the current configuration of @pool. use
gst_structure_free() after usage or gst_buffer_pool_set_config().
</return>
</function>

<function name="gst_buffer_pool_get_options">
<description>
Get a NULL terminated array of string with supported bufferpool options for
@pool. An option would typically be enabled with
gst_buffer_pool_config_add_option().


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
</parameters>
<return> a NULL terminated array of strings.
</return>
</function>

<function name="gst_buffer_pool_has_option">
<description>
Check if the bufferpool supports @option.


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
<parameter name="option">
<parameter_description> an option
</parameter_description>
</parameter>
</parameters>
<return> a NULL terminated array of strings.
</return>
</function>

<function name="gst_buffer_pool_is_active">
<description>
Check if @pool is active. A pool can be activated with the
gst_buffer_pool_set_active() call.


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
</parameters>
<return> %TRUE when the pool is active.
</return>
</function>

<function name="gst_buffer_pool_new">
<description>
Creates a new #GstBufferPool instance.


</description>
<parameters>
</parameters>
<return> a new #GstBufferPool instance
</return>
</function>

<function name="gst_buffer_pool_release_buffer">
<description>
Release @buffer to @pool. @buffer should have previously been allocated from
@pool with gst_buffer_pool_acquire_buffer().

This function is usually called automatically when the last ref on @buffer
disappears.

</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_pool_set_active">
<description>
Control the active state of @pool. When the pool is inactive, new calls to
gst_buffer_pool_acquire_buffer() will return with #GST_FLOW_FLUSHING.

Activating the bufferpool will preallocate all resources in the pool based on
the configuration of the pool.

Deactivating will free the resources again when there are no outstanding
buffers. When there are outstanding buffers, they will be freed as soon as
they are all returned to the pool.


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> the new active state
</parameter_description>
</parameter>
</parameters>
<return> %FALSE when the pool was not configured or when preallocation of the
buffers failed.
</return>
</function>

<function name="gst_buffer_pool_set_config">
<description>
Set the configuration of the pool. The pool must be inactive and all buffers
allocated form this pool must be returned or else this function will do
nothing and return FALSE.

@config is a #GstStructure that contains the configuration parameters for
the pool. A default and mandatory set of parameters can be configured with
gst_buffer_pool_config_set_params(), gst_buffer_pool_config_set_allocator()
and gst_buffer_pool_config_add_option().

If the parameters in @config can not be set exactly, this function returns
FALSE and will try to update as much state as possible. The new state can
then be retrieved and refined with gst_buffer_pool_get_config().

This function takes ownership of @config.


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstBufferPool
</parameter_description>
</parameter>
<parameter name="config">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> TRUE when the configuration could be set.
</return>
</function>

<function name="gst_buffer_prepend_memory">
<description>
Prepend the memory block @mem to @buffer. This function takes
ownership of @mem and thus doesn't increase its refcount.

This function is identical to gst_buffer_insert_memory() with an index of 0.
See gst_buffer_insert_memory() for more details.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> a #GstMemory.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_ref">
<description>
Increases the refcount of the given buffer by one.

Note that the refcount affects the writeability
of @buf and its metadata, see gst_buffer_is_writable().
It is important to note that keeping additional references to
GstBuffer instances can potentially increase the number
of memcpy operations in a pipeline.


</description>
<parameters>
<parameter name="buf">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
</parameters>
<return> @buf
</return>
</function>

<function name="gst_buffer_remove_all_memory">
<description>
Remove all the memory blocks in @buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_remove_memory">
<description>
Remove the memory block in @b at index @i.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_remove_memory_range">
<description>
Remove @length memory blocks in @buffer starting from @idx.

@length can be -1, in which case all memory starting from @idx is removed.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> a length
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_remove_meta">
<description>
Remove the metadata for @meta on @buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="meta">
<parameter_description> a #GstMeta
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the metadata existed and was removed, %FALSE if no such
metadata was on @buffer.
</return>
</function>

<function name="gst_buffer_replace">
<description>
Modifies a pointer to a #GstBuffer to point to a different #GstBuffer. The
modification is done atomically (so this is useful for ensuring thread safety
in some cases), and the reference counts are updated appropriately (the old
buffer is unreffed, the new is reffed).

Either @nbuf or the #GstBuffer pointed to by @obuf may be NULL.


</description>
<parameters>
<parameter name="obuf">
<parameter_description> pointer to a pointer to a #GstBuffer to be
replaced.
</parameter_description>
</parameter>
<parameter name="nbuf">
<parameter_description> pointer to a #GstBuffer that will
replace the buffer pointed to by @obuf.
</parameter_description>
</parameter>
</parameters>
<return> TRUE when @obuf was different from @nbuf.
</return>
</function>

<function name="gst_buffer_replace_all_memory">
<description>
Replaces all memory in @buffer with @mem.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_replace_memory">
<description>
Replaces the memory block at index @idx in @buffer with @mem.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_replace_memory_range">
<description>
Replaces @length memory blocks in @buffer starting at @idx with @mem.

If @length is -1, all memory starting from @idx will be removed and
replaced with @mem.

@buffer should be writable.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> a length should not be 0
</parameter_description>
</parameter>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_resize">
<description>
Set the offset and total size of the memory blocks in @buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset adjustement
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the new size or -1 to just adjust the offset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_resize_range">
<description>
Set the total size of the @length memory blocks starting at @idx in
@buffer


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> a length
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset adjustement
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the new size or -1 to just adjust the offset
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if resizing succeeded, %FALSE otherwise.
</return>
</function>

<function name="gst_buffer_set_size">
<description>
Set the total size of the memory blocks in @buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the new size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_straw_get_buffer">
<description>
Get one buffer from @pad. Implemented via buffer probes. This function will
block until the pipeline passes a buffer over @pad, so for robust behavior
in unit tests, you need to use check's timeout to fail out in the case that a
buffer never arrives.

You must have previously called gst_buffer_straw_start_pipeline() on
@pipeline and @pad.


</description>
<parameters>
<parameter name="bin">
<parameter_description> the pipeline previously started via gst_buffer_straw_start_pipeline()
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the pad previously passed to gst_buffer_straw_start_pipeline()
</parameter_description>
</parameter>
</parameters>
<return> the captured #GstBuffer.
</return>
</function>

<function name="gst_buffer_straw_start_pipeline">
<description>
Sets up a pipeline for buffer sucking. This will allow you to call
gst_buffer_straw_get_buffer() to access buffers as they pass over @pad.

This function is normally used in unit tests that want to verify that a
particular element is outputting correct buffers. For example, you would make
a pipeline via gst_parse_launch(), pull out the pad you want to monitor, then
call gst_buffer_straw_get_buffer() to get the buffers that pass through @pad.
The pipeline will block until you have sucked off the buffers.

This function will set the state of @bin to PLAYING; to clean up, be sure to
call gst_buffer_straw_stop_pipeline().

Note that you may not start two buffer straws at the same time. This function
is intended for unit tests, not general API use. In fact it calls fail_if
from libcheck, so you cannot use it outside unit tests.

</description>
<parameters>
<parameter name="bin">
<parameter_description> the pipeline to run
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> a pad on an element in @bin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_straw_stop_pipeline">
<description>
Set @bin to #GST_STATE_NULL and release resource allocated in
gst_buffer_straw_start_pipeline().

You must have previously called gst_buffer_straw_start_pipeline() on
@pipeline and @pad.

</description>
<parameters>
<parameter name="bin">
<parameter_description> the pipeline previously started via gst_buffer_straw_start_pipeline()
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the pad previously passed to gst_buffer_straw_start_pipeline()
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_unmap">
<description>
Release the memory previously mapped with gst_buffer_map().

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstMapInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_buffer_unref">
<description>
Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
with the associated metadata and memory will be freed.

</description>
<parameters>
<parameter name="buf">
<parameter_description> a #GstBuffer.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_add_signal_watch">
<description>
Adds a bus signal watch to the default main context with the default priority
(%G_PRIORITY_DEFAULT). It is also possible to use a non-default
main context set up using g_main_context_push_thread_default() (before
one had to create a bus watch source and attach it to the desired main
context 'manually').

After calling this statement, the bus will emit the &quot;message&quot; signal for each
message posted on the bus.

This function may be called multiple times. To clean up, the caller is
responsible for calling gst_bus_remove_signal_watch() as many times as this
function is called.

MT safe.

</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus on which you want to receive the &quot;message&quot; signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_add_signal_watch_full">
<description>
Adds a bus signal watch to the default main context with the given @priority
(e.g. %G_PRIORITY_DEFAULT). It is also possible to use a non-default main
context set up using g_main_context_push_thread_default()
(before one had to create a bus watch source and attach it to the desired
main context 'manually').

After calling this statement, the bus will emit the &quot;message&quot; signal for each
message posted on the bus when the main loop is running.

This function may be called multiple times. To clean up, the caller is
responsible for calling gst_bus_remove_signal_watch() as many times as this
function is called.

There can only be a single bus watch per bus, you must remove any signal
watch before you can set another type of watch.

MT safe.

</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus on which you want to receive the &quot;message&quot; signal
</parameter_description>
</parameter>
<parameter name="priority">
<parameter_description> The priority of the watch.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_add_watch">
<description>
Adds a bus watch to the default main context with the default priority
(%G_PRIORITY_DEFAULT). It is also possible to use a non-default main
context set up using g_main_context_push_thread_default() (before
one had to create a bus watch source and attach it to the desired main
context 'manually').

This function is used to receive asynchronous messages in the main loop.
There can only be a single bus watch per bus, you must remove it before you
can set a new one.

The watch can be removed using g_source_remove() or by returning FALSE
from @func.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to create the watch for
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> A function to call when a message is received.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @func.
</parameter_description>
</parameter>
</parameters>
<return> The event source id.

MT safe.
</return>
</function>

<function name="gst_bus_add_watch_full">
<description>
Adds a bus watch to the default main context with the given @priority (e.g.
%G_PRIORITY_DEFAULT). It is also possible to use a non-default  main
context set up using g_main_context_push_thread_default() (before
one had to create a bus watch source and attach it to the desired main
context 'manually').

This function is used to receive asynchronous messages in the main loop.
There can only be a single bus watch per bus, you must remove it before you
can set a new one.

When @func is called, the message belongs to the caller; if you want to
keep a copy of it, call gst_message_ref() before leaving @func.

The watch can be removed using g_source_remove() or by returning FALSE
from @func.

MT safe.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to create the watch for.
</parameter_description>
</parameter>
<parameter name="priority">
<parameter_description> The priority of the watch.
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> A function to call when a message is received.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @func.
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> the function to call when the source is removed.
</parameter_description>
</parameter>
</parameters>
<return> The event source id.
</return>
</function>

<function name="gst_bus_async_signal_func">
<description>
A helper #GstBusFunc that can be used to convert all asynchronous messages
into signals.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the #GstMessage received
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data
</parameter_description>
</parameter>
</parameters>
<return> TRUE
</return>
</function>

<function name="gst_bus_create_watch">
<description>
Create watch for this bus. The GSource will be dispatched whenever
a message is on the bus. After the GSource is dispatched, the
message is popped off the bus and unreffed.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to create the watch for
</parameter_description>
</parameter>
</parameters>
<return> a #GSource that can be added to a mainloop.
</return>
</function>

<function name="gst_bus_disable_sync_message_emission">
<description>
Instructs GStreamer to stop emitting the &quot;sync-message&quot; signal for this bus.
See gst_bus_enable_sync_message_emission() for more information.

In the event that multiple pieces of code have called
gst_bus_enable_sync_message_emission(), the sync-message emissions will only
be stopped after all calls to gst_bus_enable_sync_message_emission() were
&quot;cancelled&quot; by calling this function. In this way the semantics are exactly
the same as gst_object_ref() that which calls enable should also call
disable.

MT safe.

</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus on which you previously called
gst_bus_enable_sync_message_emission()
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_enable_sync_message_emission">
<description>
Instructs GStreamer to emit the &quot;sync-message&quot; signal after running the bus's
sync handler. This function is here so that code can ensure that they can
synchronously receive messages without having to affect what the bin's sync
handler is.

This function may be called multiple times. To clean up, the caller is
responsible for calling gst_bus_disable_sync_message_emission() as many times
as this function is called.

While this function looks similar to gst_bus_add_signal_watch(), it is not
exactly the same -- this function enables &lt;emphasis&gt;synchronous&lt;/emphasis&gt; emission of
signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
to pop messages off the bus &lt;emphasis&gt;asynchronously&lt;/emphasis&gt;. The sync-message signal
comes from the thread of whatever object posted the message; the &quot;message&quot;
signal is marshalled to the main thread via the main loop.

MT safe.

</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus on which you want to receive the &quot;sync-message&quot; signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_have_pending">
<description>
Check if there are pending messages on the bus that
should be handled.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to check
</parameter_description>
</parameter>
</parameters>
<return> TRUE if there are messages on the bus to be handled, FALSE
otherwise.

MT safe.
</return>
</function>

<function name="gst_bus_new">
<description>
Creates a new #GstBus instance.


</description>
<parameters>
</parameters>
<return> a new #GstBus instance
</return>
</function>

<function name="gst_bus_peek">
<description>
Peek the message on the top of the bus' queue. The message will remain
on the bus' message queue. A reference is returned, and needs to be unreffed
by the caller.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus
</parameter_description>
</parameter>
</parameters>
<return> the #GstMessage that is on the bus, or NULL if the
bus is empty.

MT safe.
</return>
</function>

<function name="gst_bus_poll">
<description>
Poll the bus for messages. Will block while waiting for messages to come.
You can specify a maximum time to poll with the @timeout parameter. If
@timeout is negative, this function will block indefinitely.

All messages not in @events will be popped off the bus and will be ignored.

Because poll is implemented using the &quot;message&quot; signal enabled by
gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the &quot;message&quot;
signal to be emitted for every message that poll sees. Thus a &quot;message&quot;
signal handler will see the same messages that this function sees -- neither
will steal messages from the other.

This function will run a main loop from the default main context when
polling.

You should never use this function, since it is pure evil. This is
especially true for GUI applications based on Gtk+ or Qt, but also for any
other non-trivial application that uses the GLib main loop. As this function
runs a GLib main loop, any callback attached to the default GLib main
context may be invoked. This could be timeouts, GUI events, I/O events etc.;
even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks
may do things you do not expect, e.g. destroy the main application window or
some other resource; change other application state; display a dialog and
run another main loop until the user clicks it away. In short, using this
function may add a lot of complexity to your code through unexpected
re-entrancy and unexpected changes to your application's state.

For 0 timeouts use gst_bus_pop_filtered() instead of this function; for
other short timeouts use gst_bus_timed_pop_filtered(); everything else is
better handled by setting up an asynchronous bus watch and doing things
from there.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus
</parameter_description>
</parameter>
<parameter name="events">
<parameter_description> a mask of #GstMessageType, representing the set of message types to
poll for.
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> the poll timeout, as a #GstClockTime, or #GST_CLOCK_TIME_NONE to poll
indefinitely.
</parameter_description>
</parameter>
</parameters>
<return> the message that was received, or NULL if the
poll timed out. The message is taken from the bus and needs to be
unreffed with gst_message_unref() after usage.
</return>
</function>

<function name="gst_bus_pop">
<description>
Get a message from the bus.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to pop
</parameter_description>
</parameter>
</parameters>
<return> the #GstMessage that is on the bus, or NULL if the
bus is empty. The message is taken from the bus and needs to be unreffed
with gst_message_unref() after usage.

MT safe.
</return>
</function>

<function name="gst_bus_pop_filtered">
<description>
Get a message matching @type from the bus.  Will discard all messages on
the bus that do not match @type and that have been posted before the first
message that does match @type.  If there is no message matching @type on
the bus, all messages will be discarded.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to pop
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> message types to take into account
</parameter_description>
</parameter>
</parameters>
<return> the next #GstMessage matching @type that is on
the bus, or NULL if the bus is empty or there is no message matching
@type. The message is taken from the bus and needs to be unreffed with
gst_message_unref() after usage.

MT safe.
</return>
</function>

<function name="gst_bus_post">
<description>
Post a message on the given bus. Ownership of the message
is taken by the bus.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to post on
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the #GstMessage to post
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the message could be posted, FALSE if the bus is flushing.

MT safe.
</return>
</function>

<function name="gst_bus_remove_signal_watch">
<description>
Removes a signal watch previously added with gst_bus_add_signal_watch().

MT safe.

</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus you previously added a signal watch to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_set_flushing">
<description>
If @flushing, flush out and unref any messages queued in the bus. Releases
references to the message origin objects. Will flush future messages until
gst_bus_set_flushing() sets @flushing to #FALSE.

MT safe.

</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus
</parameter_description>
</parameter>
<parameter name="flushing">
<parameter_description> whether or not to flush the bus
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_set_sync_handler">
<description>
Sets the synchronous handler on the bus. The function will be called
every time a new message is posted on the bus. Note that the function
will be called in the same thread context as the posting object. This
function is usually only called by the creator of the bus. Applications
should handle messages asynchronously using the gst_bus watch and poll
functions.

You cannot replace an existing sync_handler. You can pass NULL to this
function, which will clear the existing handler.

</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to install the handler on
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> The handler function to install
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data that will be sent to the handler function.
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> called when @user_data becomes unused
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_bus_sync_signal_handler">
<description>
A helper GstBusSyncHandler that can be used to convert all synchronous
messages into signals.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the #GstMessage received
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data
</parameter_description>
</parameter>
</parameters>
<return> GST_BUS_PASS
</return>
</function>

<function name="gst_bus_timed_pop">
<description>
Get a message from the bus, waiting up to the specified timeout.

If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
#GST_CLOCK_TIME_NONE, this function will block forever until a message was
posted on the bus.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to pop
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout
</parameter_description>
</parameter>
</parameters>
<return> the #GstMessage that is on the bus after the
specified timeout or NULL if the bus is empty after the timeout expired.
The message is taken from the bus and needs to be unreffed with
gst_message_unref() after usage.

MT safe.
</return>
</function>

<function name="gst_bus_timed_pop_filtered">
<description>
Get a message from the bus whose type matches the message type mask @types,
waiting up to the specified timeout (and discarding any messages that do not
match the mask provided).

If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
@timeout is #GST_CLOCK_TIME_NONE, this function will block forever until a
matching message was posted on the bus.


</description>
<parameters>
<parameter name="bus">
<parameter_description> a #GstBus to pop from
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout in nanoseconds, or GST_CLOCK_TIME_NONE to wait forever
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> message types to take into account, GST_MESSAGE_ANY for any type
</parameter_description>
</parameter>
</parameters>
<return> a #GstMessage matching the filter in @types,
or NULL if no matching message was found on the bus until the timeout
expired. The message is taken from the bus and needs to be unreffed
with gst_message_unref() after usage.

MT safe.
</return>
</function>

<function name="gst_byte_reader_dup_data">
<description>
Free-function: g_free


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size in bytes
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> address of a
#guint8 pointer variable in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_dup_data_unchecked">
<description>
Returns a newly-allocated copy of the data at the current data position
without checking if at least @size bytes are left. Advances the current read
position by @size bytes.

Free-function: g_free


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size in bytes
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated copy of the
data @size bytes in size. Free with g_free() when no longer needed.
</return>
</function>

<function name="gst_byte_reader_dup_string_utf16">
<description>
Free-function: g_free


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> address of a
#guint16 pointer varieble in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be read, %FALSE otherwise. The
string put into @str must be freed with g_free() when no longer needed.
</return>
</function>

<function name="gst_byte_reader_dup_string_utf32">
<description>
Free-function: g_free


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> address of a
#guint32 pointer varieble in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be read, %FALSE otherwise. The
string put into @str must be freed with g_free() when no longer needed.
</return>
</function>

<function name="gst_byte_reader_dup_string_utf8">
<description>
Free-function: g_free

FIXME:Reads (copies) a NUL-terminated string in the #GstByteReader instance,
advancing the current position to the byte after the string. This will work
for any NUL-terminated string with a character width of 8 bits, so ASCII,
UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> address of a
#gchar pointer varieble in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be read into @str, %FALSE otherwise. The
string put into @str must be freed with g_free() when no longer needed.
</return>
</function>

<function name="gst_byte_reader_free">
<description>
Frees a #GstByteReader instance, which was previously allocated by
gst_byte_reader_new().

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_reader_get_data">
<description>
Returns a constant pointer to the current data
position if at least @size bytes are left and
updates the current position.



</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size in bytes
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> address of a
#guint8 pointer variable in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_data_unchecked">
<description>
Returns a constant pointer to the current data position without checking
if at least @size bytes are left. Advances the current read position by
@size bytes.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size in bytes
</parameter_description>
</parameter>
</parameters>
<return> a constant pointer to the
current data position.
</return>
</function>

<function name="gst_byte_reader_get_float32_be">
<description>
Read a 32 bit big endian floating point value into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gfloat to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_float32_be_unchecked">
<description>
Read a 32 bit big endian float without checking if there is enough
data available and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> floating point value read
</return>
</function>

<function name="gst_byte_reader_get_float32_le">
<description>
Read a 32 bit little endian floating point value into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gfloat to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_float32_le_unchecked">
<description>
Read a 32 bit little endian float without checking if there is enough
data available and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> floating point value read
</return>
</function>

<function name="gst_byte_reader_get_float64_be">
<description>
Read a 64 bit big endian floating point value into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gdouble to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_float64_be_unchecked">
<description>
Read a 64 bit big endian float without checking if there is enough
data available and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> double precision floating point value read
</return>
</function>

<function name="gst_byte_reader_get_float64_le">
<description>
Read a 64 bit little endian floating point value into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gdouble to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_float64_le_unchecked">
<description>
Read a 64 bit little endian float without checking if there is enough
data available and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> double precision floating point value read
</return>
</function>

<function name="gst_byte_reader_get_int16_be">
<description>
Read a signed 16 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int16_be_unchecked">
<description>
Read a signed 16 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_int16_le">
<description>
Read a signed 16 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int16_le_unchecked">
<description>
Read a signed 16 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_int24_be">
<description>
Read a signed 24 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int24_be_unchecked">
<description>
Read a signed 24 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 24 bit integer (as gint32)
</return>
</function>

<function name="gst_byte_reader_get_int24_le">
<description>
Read a signed 24 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int24_le_unchecked">
<description>
Read a signed 24 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 24 bit integer (as gint32)
</return>
</function>

<function name="gst_byte_reader_get_int32_be">
<description>
Read a signed 32 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int32_be_unchecked">
<description>
Read a signed 32 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_int32_le">
<description>
Read a signed 32 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int32_le_unchecked">
<description>
Read a signed 32 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_int64_be">
<description>
Read a signed 64 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int64_be_unchecked">
<description>
Read a signed 64 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_int64_le">
<description>
Read a signed 64 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int64_le_unchecked">
<description>
Read a signed 64 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_int8">
<description>
Read a signed 8 bit integer into @val and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint8 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_int8_unchecked">
<description>
Read an signed 8 bit integer without checking if there are enough bytes
available in the byte reader and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 8 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_pos">
<description>
Returns the current position of a #GstByteReader instance in bytes.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> The current position of @reader in bytes.
</return>
</function>

<function name="gst_byte_reader_get_remaining">
<description>
Returns the remaining number of bytes of a #GstByteReader instance.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> The remaining number of bytes of @reader instance.
</return>
</function>

<function name="gst_byte_reader_get_size">
<description>
Returns the total number of bytes of a #GstByteReader instance.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> The total number of bytes of @reader instance.
</return>
</function>

<function name="gst_byte_reader_get_string_utf8">
<description>
Returns a constant pointer to the current data position if there is
a NUL-terminated string in the data (this could be just a NUL terminator),
advancing the current position to the byte after the string. This will work
for any NUL-terminated string with a character width of 8 bits, so ASCII,
UTF-8, ISO-8859-N etc.

No input checking for valid UTF-8 is done.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> address of a
#gchar pointer varieble in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be found, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint16_be">
<description>
Read an unsigned 16 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint16_be_unchecked">
<description>
Read an unsigned 16 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_uint16_le">
<description>
Read an unsigned 16 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint16_le_unchecked">
<description>
Read an unsigned 16 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_uint24_be">
<description>
Read an unsigned 24 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint24_be_unchecked">
<description>
Read an unsigned 24 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 24 bit integer (as guint32)
</return>
</function>

<function name="gst_byte_reader_get_uint24_le">
<description>
Read an unsigned 24 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint24_le_unchecked">
<description>
Read an unsigned 24 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 24 bit integer (as guint32)
</return>
</function>

<function name="gst_byte_reader_get_uint32_be">
<description>
Read an unsigned 32 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint32_be_unchecked">
<description>
Read an unsigned 32 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_uint32_le">
<description>
Read an unsigned 32 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint32_le_unchecked">
<description>
Read an unsigned 32 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_uint64_be">
<description>
Read an unsigned 64 bit big endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint64_be_unchecked">
<description>
Read an unsigned 64 bit integer in big endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_uint64_le">
<description>
Read an unsigned 64 bit little endian integer into @val
and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint64_le_unchecked">
<description>
Read an unsigned 64 bit integer in little endian format without checking
if there are enough bytes available in the byte reader and update the
current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_get_uint8">
<description>
Read an unsigned 8 bit integer into @val and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint8 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_get_uint8_unchecked">
<description>
Read an unsigned 8 bit integer without checking if there are enough bytes
available in the byte reader and update the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 8 bit integer.
</return>
</function>

<function name="gst_byte_reader_init">
<description>
Initializes a #GstByteReader instance to read from @data. This function
can be called on already initialized instances.

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data from which
the #GstByteReader should read
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_reader_masked_scan_uint32">
<description>
Scan for pattern @pattern with applied mask @mask in the byte reader data,
starting from offset @offset relative to the current position.

The bytes in @pattern and @mask are interpreted left-to-right, regardless
of endianness.  All four bytes of the pattern must be present in the
byte reader data for it to match, even if the first or last bytes are masked
out.

It is an error to call this function without making sure that there is
enough data (offset+size bytes) in the byte reader.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader
</parameter_description>
</parameter>
<parameter name="mask">
<parameter_description> mask to apply to data before matching against @pattern
</parameter_description>
</parameter>
<parameter name="pattern">
<parameter_description> pattern to match (after mask is applied)
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset from which to start scanning, relative to the current
position
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> number of bytes to scan from offset
</parameter_description>
</parameter>
</parameters>
<return> offset of the first match, or -1 if no match was found.

Example:
&lt;programlisting&gt;
// Assume the reader contains 0x00 0x01 0x02 ... 0xfe 0xff

gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 0, 256);
// -&gt; returns 0
gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 1, 255);
// -&gt; returns -1
gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x01020304, 1, 255);
// -&gt; returns 1
gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0001, 0, 256);
// -&gt; returns -1
gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0203, 0, 256);
// -&gt; returns 0
gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 256);
// -&gt; returns 2
gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 4);
// -&gt; returns -1
&lt;/programlisting&gt;
</return>
</function>

<function name="gst_byte_reader_new">
<description>
Create a new #GstByteReader instance, which will read from @data.

Free-function: gst_byte_reader_free


</description>
<parameters>
<parameter name="data">
<parameter_description> data from which the
#GstByteReader should read
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
</parameters>
<return> a new #GstByteReader instance
</return>
</function>

<function name="gst_byte_reader_peek_data">
<description>
Returns a constant pointer to the current data
position if at least @size bytes are left and
keeps the current position.



</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size in bytes
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> address of a
#guint8 pointer variable in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_data_unchecked">
<description>

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> a constant pointer to the current data position
</return>
</function>

<function name="gst_byte_reader_peek_float32_be">
<description>
Read a 32 bit big endian floating point value into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gfloat to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_float32_be_unchecked">
<description>
Read a 32 bit big endian float without checking if there is enough
data available, but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> floating point value read
</return>
</function>

<function name="gst_byte_reader_peek_float32_le">
<description>
Read a 32 bit little endian floating point value into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gfloat to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_float32_le_unchecked">
<description>
Read a 32 bit little endian float without checking if there is enough
data available, but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> floating point value read
</return>
</function>

<function name="gst_byte_reader_peek_float64_be">
<description>
Read a 64 bit big endian floating point value into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gdouble to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_float64_be_unchecked">
<description>
Read a 64 bit big endian float without checking if there is enough
data available, but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> double precision floating point value read
</return>
</function>

<function name="gst_byte_reader_peek_float64_le">
<description>
Read a 64 bit little endian floating point value into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gdouble to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_float64_le_unchecked">
<description>
Read a 64 bit little endian float without checking if there is enough
data available, but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> double precision floating point value read
</return>
</function>

<function name="gst_byte_reader_peek_int16_be">
<description>
Read a signed 16 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int16_be_unchecked">
<description>
Read a signed 16 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_int16_le">
<description>
Read a signed 16 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int16_le_unchecked">
<description>
Read a signed 16 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_int24_be">
<description>
Read a signed 24 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int24_be_unchecked">
<description>
Read a signed 24 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 24 bit integer (as gint32)
</return>
</function>

<function name="gst_byte_reader_peek_int24_le">
<description>
Read a signed 24 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int24_le_unchecked">
<description>
Read a signed 24 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 24 bit integer (as gint32)
</return>
</function>

<function name="gst_byte_reader_peek_int32_be">
<description>
Read a signed 32 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int32_be_unchecked">
<description>
Read a signed 32 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_int32_le">
<description>
Read a signed 32 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int32_le_unchecked">
<description>
Read a signed 32 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_int64_be">
<description>
Read a signed 64 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int64_be_unchecked">
<description>
Read a signed 64 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_int64_le">
<description>
Read a signed 64 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int64_le_unchecked">
<description>
Read a signed 64 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_int8">
<description>
Read a signed 8 bit integer into @val but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #gint8 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_int8_unchecked">
<description>
Read an signed 8 bit integer without checking if there are enough bytes
available in the byte reader, but do not advance the current read position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> signed 8 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_string">
<description>
Returns a constant pointer to the current data position if there is
a NUL-terminated string in the data (this could be just a NUL terminator).
The current position will be maintained. This will work for any
NUL-terminated string with a character width of 8 bits, so ASCII,
UTF-8, ISO-8859-N etc.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> address of a
#gchar pointer varieble in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_string_utf8">
<description>
Returns a constant pointer to the current data position if there is
a NUL-terminated string in the data (this could be just a NUL terminator).
The current position will be maintained. This will work for any
NUL-terminated string with a character width of 8 bits, so ASCII,
UTF-8, ISO-8859-N etc.

No input checking for valid UTF-8 is done.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> address of a
#gchar pointer varieble in which to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint16_be">
<description>
Read an unsigned 16 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint16_be_unchecked">
<description>
Read an unsigned 16 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_uint16_le">
<description>
Read an unsigned 16 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint16 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint16_le_unchecked">
<description>
Read an unsigned 16 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 16 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_uint24_be">
<description>
Read an unsigned 24 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint24_be_unchecked">
<description>
Read an unsigned 24 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 24 bit integer (as guint32)
</return>
</function>

<function name="gst_byte_reader_peek_uint24_le">
<description>
Read an unsigned 24 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint24_le_unchecked">
<description>
Read an unsigned 24 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 24 bit integer (as guint32)
</return>
</function>

<function name="gst_byte_reader_peek_uint32_be">
<description>
Read an unsigned 32 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint32_be_unchecked">
<description>
Read an unsigned 32 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_uint32_le">
<description>
Read an unsigned 32 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint32 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint32_le_unchecked">
<description>
Read an unsigned 32 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 32 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_uint64_be">
<description>
Read an unsigned 64 bit big endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint64_be_unchecked">
<description>
Read an unsigned 64 bit integer in big endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_uint64_le">
<description>
Read an unsigned 64 bit little endian integer into @val
but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint64 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint64_le_unchecked">
<description>
Read an unsigned 64 bit integer in little endian format without checking
if there are enough bytes available in the byte reader, but do not advance
the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 64 bit integer.
</return>
</function>

<function name="gst_byte_reader_peek_uint8">
<description>
Read an unsigned 8 bit integer into @val but keep the current position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Pointer to a #guint8 to store the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_peek_uint8_unchecked">
<description>
Read an unsigned 8 bit integer without checking if there are enough bytes
available in the byte reader, but do not advance the current read position.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> unsigned 8 bit integer.
</return>
</function>

<function name="gst_byte_reader_set_pos">
<description>
Sets the new position of a #GstByteReader instance to @pos in bytes.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> The new position in bytes
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the position could be set successfully, %FALSE
otherwise.
</return>
</function>

<function name="gst_byte_reader_skip">
<description>
Skips @nbytes bytes of the #GstByteReader instance.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="nbytes">
<parameter_description> the number of bytes to skip
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @nbytes bytes could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_skip_string">
<description>
Skips a NUL-terminated string in the #GstByteReader instance, advancing
the current position to the byte after the string. This will work for
any NUL-terminated string with a character width of 8 bits, so ASCII,
UTF-8, ISO-8859-N etc.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_skip_string_utf16">
<description>
Skips a NUL-terminated UTF-16 string in the #GstByteReader instance,
advancing the current position to the byte after the string.

No input checking for valid UTF-16 is done.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_skip_string_utf32">
<description>
Skips a NUL-terminated UTF-32 string in the #GstByteReader instance,
advancing the current position to the byte after the string.

No input checking for valid UTF-32 is done.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_skip_string_utf8">
<description>
Skips a NUL-terminated string in the #GstByteReader instance, advancing
the current position to the byte after the string. This will work for
any NUL-terminated string with a character width of 8 bits, so ASCII,
UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.

This function will fail if no NUL-terminator was found in in the data.


</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a string could be skipped, %FALSE otherwise.
</return>
</function>

<function name="gst_byte_reader_skip_unchecked">
<description>
Skips @nbytes bytes of the #GstByteReader instance without checking if
there are enough bytes available in the byte reader.

</description>
<parameters>
<parameter name="reader">
<parameter_description> a #GstByteReader instance
</parameter_description>
</parameter>
<parameter name="nbytes">
<parameter_description> the number of bytes to skip
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_ensure_free_space">
<description>
Checks if enough free space from the current write cursor is
available and reallocates if necessary.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Number of bytes that should be available
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if at least @size bytes are still available
</return>
</function>

<function name="gst_byte_writer_fill">
<description>
Writes @size bytes containing @value to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Value to be writen
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Number of bytes to be writen
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_fill_unchecked">
<description>
Writes @size bytes containing @value to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Value to be writen
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Number of bytes to be writen
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_free">
<description>
Frees @writer and all memory allocated by it.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_free_and_get_buffer">
<description>
Frees @writer and all memory allocated by it except
the current data, which is returned as #GstBuffer.

Free-function: gst_buffer_unref


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return> the current data as buffer. gst_buffer_unref()
after usage.
</return>
</function>

<function name="gst_byte_writer_free_and_get_data">
<description>
Frees @writer and all memory allocated by it except
the current data, which is returned.

Free-function: g_free


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return> the current data. g_free() after usage.
</return>
</function>

<function name="gst_byte_writer_get_pos">
<description>

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return> The current position of the read/write cursor
</return>
</function>

<function name="gst_byte_writer_get_remaining">
<description>
Returns the remaining size of data that can still be written. If
-1 is returned the remaining size is only limited by system resources.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return> the remaining size of data that can still be written
</return>
</function>

<function name="gst_byte_writer_get_size">
<description>

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return> The current, initialized size of the data
</return>
</function>

<function name="gst_byte_writer_init">
<description>
Initializes @writer to an empty instance

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_init_with_data">
<description>
Initializes @writer with the given
memory area. If @initialized is %TRUE it is possible to
read @size bytes from the #GstByteWriter from the beginning.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> Memory area for writing
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
<parameter name="initialized">
<parameter_description> If %TRUE the complete data can be read from the beginning
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_init_with_size">
<description>
Initializes @writer with the given initial data size.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Initial size of data
</parameter_description>
</parameter>
<parameter name="fixed">
<parameter_description> If %TRUE the data can't be reallocated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_new">
<description>
Creates a new, empty #GstByteWriter instance

Free-function: gst_byte_writer_free


</description>
<parameters>
</parameters>
<return> a new, empty #GstByteWriter instance
</return>
</function>

<function name="gst_byte_writer_new_with_data">
<description>
Creates a new #GstByteWriter instance with the given
memory area. If @initialized is %TRUE it is possible to
read @size bytes from the #GstByteWriter from the beginning.

Free-function: gst_byte_writer_free


</description>
<parameters>
<parameter name="data">
<parameter_description> Memory area for writing
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
<parameter name="initialized">
<parameter_description> If %TRUE the complete data can be read from the beginning
</parameter_description>
</parameter>
</parameters>
<return> a new #GstByteWriter instance
</return>
</function>

<function name="gst_byte_writer_new_with_size">
<description>
Creates a new #GstByteWriter instance with the given
initial data size.

Free-function: gst_byte_writer_free


</description>
<parameters>
<parameter name="size">
<parameter_description> Initial size of data
</parameter_description>
</parameter>
<parameter name="fixed">
<parameter_description> If %TRUE the data can't be reallocated
</parameter_description>
</parameter>
</parameters>
<return> a new #GstByteWriter instance
</return>
</function>

<function name="gst_byte_writer_put_buffer">
<description>
Writes @size bytes of @data to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> source #GstBuffer
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset to copy from
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> total size to copy. If -1, all data is copied
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the data could be written

</return>
</function>

<function name="gst_byte_writer_put_data">
<description>
Writes @size bytes of @data to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> Data to write
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_data_unchecked">
<description>
Writes @size bytes of @data to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> Data to write
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> Size of @data in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_float32_be">
<description>
Writes a big endian 32 bit float to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_float32_be_unchecked">
<description>
Writes a big endian 32 bit float to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_float32_le">
<description>
Writes a little endian 32 bit float to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_float32_le_unchecked">
<description>
Writes a little endian 32 bit float to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_float64_be">
<description>
Writes a big endian 64 bit float to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_float64_be_unchecked">
<description>
Writes a big endian 64 bit float to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_float64_le">
<description>
Writes a little endian 64 bit float to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_float64_le_unchecked">
<description>
Writes a little endian 64 bit float to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int16_be">
<description>
Writes a signed big endian 16 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int16_be_unchecked">
<description>
Writes a signed big endian 16 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int16_le">
<description>
Writes a signed little endian 16 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int16_le_unchecked">
<description>
Writes a signed little endian 16 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int24_be">
<description>
Writes a signed big endian 24 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int24_be_unchecked">
<description>
Writes a signed big endian 24 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int24_le">
<description>
Writes a signed little endian 24 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int24_le_unchecked">
<description>
Writes a signed little endian 24 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int32_be">
<description>
Writes a signed big endian 32 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int32_be_unchecked">
<description>
Writes a signed big endian 32 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int32_le">
<description>
Writes a signed little endian 32 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int32_le_unchecked">
<description>
Writes a signed little endian 32 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int64_be">
<description>
Writes a signed big endian 64 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int64_be_unchecked">
<description>
Writes a signed big endian 64 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int64_le">
<description>
Writes a signed little endian 64 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_int64_le_unchecked">
<description>
Writes a signed little endian 64 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_int8">
<description>
Writes a signed 8 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_string">
<description>
Write a NUL-terminated string to @writer (including the terminator). The
string is assumed to be in an 8-bit encoding (e.g. ASCII,UTF-8 or
ISO-8859-1).


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> Null terminated string
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the string could be written
</return>
</function>

<function name="gst_byte_writer_put_string_utf16">
<description>
Writes a NUL-terminated UTF16 string to @writer (including the terminator).


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> UTF16 string to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_string_utf32">
<description>
Writes a NUL-terminated UTF32 string to @writer (including the terminator).


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> UTF32 string to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_string_utf8">
<description>
Writes a NUL-terminated UTF8 string to @writer (including the terminator).


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> UTF8 string to
write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint16_be">
<description>
Writes a unsigned big endian 16 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint16_be_unchecked">
<description>
Writes a unsigned big endian 16 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint16_le">
<description>
Writes a unsigned little endian 16 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint16_le_unchecked">
<description>
Writes a unsigned little endian 16 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint24_be">
<description>
Writes a unsigned big endian 24 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint24_be_unchecked">
<description>
Writes a unsigned big endian 24 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint24_le">
<description>
Writes a unsigned little endian 24 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint24_le_unchecked">
<description>
Writes a unsigned little endian 24 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint32_be">
<description>
Writes a unsigned big endian 32 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint32_be_unchecked">
<description>
Writes a unsigned big endian 32 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint32_le">
<description>
Writes a unsigned little endian 32 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint32_le_unchecked">
<description>
Writes a unsigned little endian 32 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint64_be">
<description>
Writes a unsigned big endian 64 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint64_be_unchecked">
<description>
Writes a unsigned big endian 64 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint64_le">
<description>
Writes a unsigned little endian 64 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint64_le_unchecked">
<description>
Writes a unsigned little endian 64 bit integer to @writer without
checking if there is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_put_uint8">
<description>
Writes a unsigned 8 bit integer to @writer.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be written
</return>
</function>

<function name="gst_byte_writer_put_uint8_unchecked">
<description>
Writes a unsigned 8 bit integer to @writer without checking if there
is enough free space available in the byte writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Value to write
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_reset">
<description>
Resets @writer and frees the data if it's
owned by @writer.

</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_byte_writer_reset_and_get_buffer">
<description>
Resets @writer and returns the current data as buffer.

Free-function: gst_buffer_unref


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return> the current data as buffer. gst_buffer_unref()
after usage.
</return>
</function>

<function name="gst_byte_writer_reset_and_get_data">
<description>
Resets @writer and returns the current data.

Free-function: g_free


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
</parameters>
<return> the current data. g_free() after
usage.
</return>
</function>

<function name="gst_byte_writer_set_pos">
<description>
Sets the current read/write cursor of @writer. The new position
can only be between 0 and the current size.


</description>
<parameters>
<parameter name="writer">
<parameter_description> #GstByteWriter instance
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> new position
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the new position could be set
</return>
</function>

<function name="gst_caps_append">
<description>
Appends the structures contained in @caps2 to @caps1. The structures in
@caps2 are not copied -- they are transferred to @caps1, and then @caps2 is
freed. If either caps is ANY, the resulting caps will be ANY.

</description>
<parameters>
<parameter name="caps1">
<parameter_description> the #GstCaps that will be appended to
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> the #GstCaps to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_append_structure">
<description>
Appends @structure to @caps.  The structure is not copied; @caps
becomes the owner of @structure.

</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps that will be appended to
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the #GstStructure to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_append_structure_full">
<description>
Appends @structure with @features to @caps.  The structure is not copied; @caps
becomes the owner of @structure.

</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps that will be appended to
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the #GstStructure to append
</parameter_description>
</parameter>
<parameter name="features">
<parameter_description> the #GstCapsFeatures to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_can_intersect">
<description>
Tries intersecting @caps1 and @caps2 and reports whether the result would not
be empty


</description>
<parameters>
<parameter name="caps1">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if intersection would be not empty
</return>
</function>

<function name="gst_caps_copy">
<description>
Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
refcount of 1, owned by the caller. The structures are copied as well.

Note that this function is the semantic equivalent of a gst_caps_ref()
followed by a gst_caps_make_writable(). If you only want to hold on to a
reference to the data, you should use gst_caps_ref().

When you are finished with the caps, call gst_caps_unref() on it.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps.
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_copy_nth">
<description>
Creates a new #GstCaps and appends a copy of the nth structure
contained in @caps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to copy
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> the nth structure to copy
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_features_add">
<description>
Adds @feature to @features.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> a feature.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_features_add_id">
<description>
Adds @feature to @features.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> a feature.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_features_contains">
<description>
Check if @features contains @feature.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> a feature
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @features contains @feature.

</return>
</function>

<function name="gst_caps_features_contains_id">
<description>
Check if @features contains @feature.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> a feature
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @features contains @feature.

</return>
</function>

<function name="gst_caps_features_copy">
<description>
Duplicates a #GstCapsFeatures and all its values.

Free-function: gst_caps_features_free


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures to duplicate
</parameter_description>
</parameter>
</parameters>
<return> a new #GstCapsFeatures.

</return>
</function>

<function name="gst_caps_features_free">
<description>
Frees a #GstCapsFeatures and all its values. The caps features must not
have a parent when this function is called.


</description>
<parameters>
<parameter name="features">
<parameter_description> the #GstCapsFeatures to free
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_features_from_string">
<description>
Creates a #GstCapsFeatures from a string representation.

Free-function: gst_caps_features_free


</description>
<parameters>
<parameter name="features">
<parameter_description> a string representation of a #GstCapsFeatures.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstCapsFeatures or NULL when the string could
not be parsed. Free with gst_caps_features_free() after use.

</return>
</function>

<function name="gst_caps_features_get_nth">
<description>
Returns the @i-th feature of @features.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="i">
<parameter_description> index of the feature
</parameter_description>
</parameter>
</parameters>
<return> The @i-th feature of @features.

</return>
</function>

<function name="gst_caps_features_get_nth_id">
<description>
Returns the @i-th feature of @features.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="i">
<parameter_description> index of the feature
</parameter_description>
</parameter>
</parameters>
<return> The @i-th feature of @features.

</return>
</function>

<function name="gst_caps_features_get_size">
<description>
Returns the number of features in @features.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
</parameters>
<return> The number of features in @features.

</return>
</function>

<function name="gst_caps_features_is_any">
<description>
Check if @features is %GST_CAPS_FEATURES_ANY.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @features is %GST_CAPS_FEATURES_ANY.

</return>
</function>

<function name="gst_caps_features_is_equal">
<description>
Check if @features1 and @features2 are equal.


</description>
<parameters>
<parameter name="features1">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="features2">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @features1 and @features2 are equal.

</return>
</function>

<function name="gst_caps_features_new">
<description>
Creates a new #GstCapsFeatures with the given features.
The last argument must be NULL.

Free-function: gst_caps_features_free


</description>
<parameters>
<parameter name="feature1">
<parameter_description> name of first feature to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional features
</parameter_description>
</parameter>
</parameters>
<return> a new, empty #GstCapsFeatures

</return>
</function>

<function name="gst_caps_features_new_any">
<description>
Creates a new, ANY #GstCapsFeatures. This will be equal
to any other #GstCapsFeatures but caps with these are
unfixed.

Free-function: gst_caps_features_free


</description>
<parameters>
</parameters>
<return> a new, ANY #GstCapsFeatures

</return>
</function>

<function name="gst_caps_features_new_empty">
<description>
Creates a new, empty #GstCapsFeatures.

Free-function: gst_caps_features_free


</description>
<parameters>
</parameters>
<return> a new, empty #GstCapsFeatures

</return>
</function>

<function name="gst_caps_features_new_id">
<description>
Creates a new #GstCapsFeatures with the given features.
The last argument must be 0.

Free-function: gst_caps_features_free


</description>
<parameters>
<parameter name="feature1">
<parameter_description> name of first feature to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional features
</parameter_description>
</parameter>
</parameters>
<return> a new, empty #GstCapsFeatures

</return>
</function>

<function name="gst_caps_features_new_id_valist">
<description>
Creates a new #GstCapsFeatures with the given features.

Free-function: gst_caps_features_free


</description>
<parameters>
<parameter name="feature1">
<parameter_description> name of first feature to set
</parameter_description>
</parameter>
<parameter name="varargs">
<parameter_description> variable argument list
</parameter_description>
</parameter>
</parameters>
<return> a new, empty #GstCapsFeatures

</return>
</function>

<function name="gst_caps_features_new_valist">
<description>
Creates a new #GstCapsFeatures with the given features.

Free-function: gst_caps_features_free


</description>
<parameters>
<parameter name="feature1">
<parameter_description> name of first feature to set
</parameter_description>
</parameter>
<parameter name="varargs">
<parameter_description> variable argument list
</parameter_description>
</parameter>
</parameters>
<return> a new, empty #GstCapsFeatures

</return>
</function>

<function name="gst_caps_features_remove">
<description>
Removes @feature from @features.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> a feature.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_features_remove_id">
<description>
Removes @feature from @features.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures.
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> a feature.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_features_set_parent_refcount">
<description>
Sets the parent_refcount field of #GstCapsFeatures. This field is used to
determine whether a caps features is mutable or not. This function should only be
called by code implementing parent objects of #GstCapsFeatures, as described in
the MT Refcounting section of the design documents.


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures
</parameter_description>
</parameter>
<parameter name="refcount">
<parameter_description> a pointer to the parent's refcount
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the parent refcount could be set.

</return>
</function>

<function name="gst_caps_features_to_string">
<description>
Converts @features to a human-readable string representation.

For debugging purposes its easier to do something like this:
|[
GST_LOG (&quot;features is %&quot; GST_PTR_FORMAT, features);
]|
This prints the features in human readble form.

Free-function: g_free


</description>
<parameters>
<parameter name="features">
<parameter_description> a #GstCapsFeatures
</parameter_description>
</parameter>
</parameters>
<return> a pointer to string allocated by g_malloc().
g_free() after usage.

</return>
</function>

<function name="gst_caps_fixate">
<description>
Modifies the given @caps into a representation with only fixed
values. First the caps will be truncated and then the first structure will be
fixated with gst_structure_fixate().


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps to fixate
</parameter_description>
</parameter>
</parameters>
<return> the fixated caps
</return>
</function>

<function name="gst_caps_from_string">
<description>
Converts @caps from a string representation.


</description>
<parameters>
<parameter name="string">
<parameter_description> a string to convert to #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GstCaps
</return>
</function>

<function name="gst_caps_get_features">
<description>
Finds the features in @caps that has the index @index, and
returns it.

WARNING: This function takes a const GstCaps *, but returns a
non-const GstCapsFeatures *.  This is for programming convenience --
the caller should be aware that structures inside a constant
#GstCaps should not be modified. However, if you know the caps
are writable, either because you have just copied them or made
them writable with gst_caps_make_writable(), you may modify the
features returned in the usual way, e.g. with functions like
gst_caps_features_add().

You do not need to free or unref the structure returned, it
belongs to the #GstCaps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the index of the structure
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GstCapsFeatures corresponding
to @index
</return>
</function>

<function name="gst_caps_get_size">
<description>
Gets the number of structures contained in @caps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> the number of structures that @caps contains
</return>
</function>

<function name="gst_caps_get_structure">
<description>
Finds the structure in @caps that has the index @index, and
returns it.

WARNING: This function takes a const GstCaps *, but returns a
non-const GstStructure *.  This is for programming convenience --
the caller should be aware that structures inside a constant
#GstCaps should not be modified. However, if you know the caps
are writable, either because you have just copied them or made
them writable with gst_caps_make_writable(), you may modify the
structure returned in the usual way, e.g. with functions like
gst_structure_set().

You do not need to free or unref the structure returned, it
belongs to the #GstCaps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the index of the structure
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GstStructure corresponding
to @index
</return>
</function>

<function name="gst_caps_intersect">
<description>
Creates a new #GstCaps that contains all the formats that are common
to both @caps1 and @caps2. Defaults to %GST_CAPS_INTERSECT_ZIG_ZAG mode.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_intersect_first">
<description>
Creates a new #GstCaps that contains all the formats that are common
to both @caps1 and @caps2.

Unlike @gst_caps_intersect, the returned caps will be ordered in a similar
fashion as @caps1.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_intersect_full">
<description>
Creates a new #GstCaps that contains all the formats that are common
to both @caps1 and @caps2, the order is defined by the #GstCapsIntersectMode
used.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> a #GstCaps to intersect
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> The intersection algorithm/mode to use
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_is_always_compatible">
<description>
A given #GstCaps structure is always compatible with another if
every media format that is in the first is also contained in the
second.  That is, @caps1 is a subset of @caps2.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> the #GstCaps to test
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> the #GstCaps to test
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @caps1 is a subset of @caps2.
</return>
</function>

<function name="gst_caps_is_any">
<description>
Determines if @caps represents any media format.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to test
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @caps represents any format.
</return>
</function>

<function name="gst_caps_is_empty">
<description>
Determines if @caps represents no media formats.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to test
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @caps represents no formats.
</return>
</function>

<function name="gst_caps_is_equal">
<description>
Checks if the given caps represent the same set of caps.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> another #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> TRUE if both caps are equal.
</return>
</function>

<function name="gst_caps_is_equal_fixed">
<description>
Tests if two #GstCaps are equal.  This function only works on fixed
#GstCaps.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> the #GstCaps to test
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> the #GstCaps to test
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the arguments represent the same format
</return>
</function>

<function name="gst_caps_is_fixed">
<description>
Fixed #GstCaps describe exactly one format, that is, they have exactly
one structure, and each field in the structure describes a fixed type.
Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to test
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @caps is fixed
</return>
</function>

<function name="gst_caps_is_strictly_equal">
<description>
Checks if the given caps are exactly the same set of caps.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> another #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> TRUE if both caps are strictly equal.
</return>
</function>

<function name="gst_caps_is_subset">
<description>
Checks if all caps represented by @subset are also represented by @superset.


</description>
<parameters>
<parameter name="subset">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="superset">
<parameter_description> a potentially greater #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @subset is a subset of @superset
</return>
</function>

<function name="gst_caps_is_subset_structure">
<description>
Checks if @structure is a subset of @caps. See gst_caps_is_subset()
for more information.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> a potential #GstStructure subset of @caps
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @structure is a subset of @caps
</return>
</function>

<function name="gst_caps_is_subset_structure_full">
<description>
Checks if @structure is a subset of @caps. See gst_caps_is_subset()
for more information.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> a potential #GstStructure subset of @caps
</parameter_description>
</parameter>
<parameter name="features">
<parameter_description> a #GstCapsFeatures for @structure
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @structure is a subset of @caps
</return>
</function>

<function name="gst_caps_is_writable">
<description>
Tests if you can safely modify @caps. It is only safe to modify caps when
there is only one owner of the caps - ie, the object is writable.

</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_make_writable">
<description>
Returns a writable copy of @caps.

If there is only one reference count on @caps, the caller must be the owner,
and so this function will return the caps object unchanged. If on the other
hand there is more than one reference on the object, a new caps object will
be returned. The caller's reference on @caps will be removed, and instead the
caller will own a reference to the returned object.

In short, this function unrefs the caps in the argument and refs the caps
that it returns. Don't access the argument after calling this function. See
also: gst_caps_ref().


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> a writable caps which may or may not be the
same as @caps
</return>
</function>

<function name="gst_caps_merge">
<description>
Appends the structures contained in @caps2 to @caps1 if they are not yet
expressed by @caps1. The structures in @caps2 are not copied -- they are
transferred to a writable copy of @caps1, and then @caps2 is freed.
If either caps is ANY, the resulting caps will be ANY.


</description>
<parameters>
<parameter name="caps1">
<parameter_description> the #GstCaps that will take the new entries
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> the #GstCaps to merge in
</parameter_description>
</parameter>
</parameters>
<return> the merged caps.
</return>
</function>

<function name="gst_caps_merge_structure">
<description>
Appends @structure to @caps if its not already expressed by @caps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to merge into
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the #GstStructure to merge
</parameter_description>
</parameter>
</parameters>
<return> the merged caps.
</return>
</function>

<function name="gst_caps_merge_structure_full">
<description>
Appends @structure with @features to @caps if its not already expressed by @caps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to merge into
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the #GstStructure to merge
</parameter_description>
</parameter>
<parameter name="features">
<parameter_description> the #GstCapsFeatures to merge
</parameter_description>
</parameter>
</parameters>
<return> the merged caps.
</return>
</function>

<function name="gst_caps_new_any">
<description>
Creates a new #GstCaps that indicates that it is compatible with
any media format.


</description>
<parameters>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_new_empty">
<description>
Creates a new #GstCaps that is empty.  That is, the returned
#GstCaps contains no media formats.
The #GstCaps is guaranteed to be writable.
Caller is responsible for unreffing the returned caps.


</description>
<parameters>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_new_empty_simple">
<description>
Creates a new #GstCaps that contains one #GstStructure with name
@media_type.
Caller is responsible for unreffing the returned caps.


</description>
<parameters>
<parameter name="media_type">
<parameter_description> the media type of the structure
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_new_full">
<description>
Creates a new #GstCaps and adds all the structures listed as
arguments.  The list must be NULL-terminated.  The structures
are not copied; the returned #GstCaps owns the structures.


</description>
<parameters>
<parameter name="struct1">
<parameter_description> the first structure to add
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional structures to add
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_new_full_valist">
<description>
Creates a new #GstCaps and adds all the structures listed as
arguments.  The list must be NULL-terminated.  The structures
are not copied; the returned #GstCaps owns the structures.


</description>
<parameters>
<parameter name="structure">
<parameter_description> the first structure to add
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> additional structures to add
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_new_simple">
<description>
Creates a new #GstCaps that contains one #GstStructure.  The
structure is defined by the arguments, which have the same format
as gst_structure_new().
Caller is responsible for unreffing the returned caps.


</description>
<parameters>
<parameter name="media_type">
<parameter_description> the media type of the structure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> first field to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional arguments
</parameter_description>
</parameter>
</parameters>
<return> the new #GstCaps
</return>
</function>

<function name="gst_caps_normalize">
<description>
Returns a #GstCaps that represents the same set of formats as
@caps, but contains no lists.  Each list is expanded into separate
@GstStructures.

This function takes ownership of @caps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps to normalize
</parameter_description>
</parameter>
</parameters>
<return> the normalized #GstCaps
</return>
</function>

<function name="gst_caps_ref">
<description>
Add a reference to a #GstCaps object.

From this point on, until the caller calls gst_caps_unref() or
gst_caps_make_writable(), it is guaranteed that the caps object will not
change. This means its structures won't change, etc. To use a #GstCaps
object, you must always have a refcount on it -- either the one made
implicitly by e.g. gst_caps_new_simple(), or via taking one explicitly with
this function.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to reference
</parameter_description>
</parameter>
</parameters>
<return> the same #GstCaps object.
</return>
</function>

<function name="gst_caps_remove_structure">
<description>
removes the stucture with the given index from the list of structures
contained in @caps.

</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to remove from
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> Index of the structure to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_replace">
<description>
Modifies a pointer to a #GstCaps to point to a different #GstCaps. The
modification is done atomically (so this is useful for ensuring thread safety
in some cases), and the reference counts are updated appropriately (the old
caps is unreffed, the new is reffed).

Either @ncaps or the #GstCaps pointed to by @ocaps may be NULL.


</description>
<parameters>
<parameter name="old_caps">
<parameter_description> pointer to a pointer to a #GstCaps to be
replaced.
</parameter_description>
</parameter>
<parameter name="new_caps">
<parameter_description> pointer to a #GstCaps that will
replace the caps pointed to by @ocaps.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @new_caps was different from @old_caps
</return>
</function>

<function name="gst_caps_set_features">
<description>
Sets the #GstCapsFeatures @features for the structure at @index.

</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the index of the structure
</parameter_description>
</parameter>
<parameter name="features">
<parameter_description> the #GstFeatures to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_set_simple">
<description>
Sets fields in a #GstCaps.  The arguments must be passed in the same
manner as gst_structure_set(), and be NULL-terminated.

</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to set
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> first field to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional parameters
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_set_simple_valist">
<description>
Sets fields in a #GstCaps.  The arguments must be passed in the same
manner as gst_structure_set(), and be NULL-terminated.

</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to set
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> first field to set
</parameter_description>
</parameter>
<parameter name="varargs">
<parameter_description> additional parameters
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_set_value">
<description>
Sets the given @field on all structures of @caps to the given @value.
This is a convenience function for calling gst_structure_set_value() on
all structures of @caps.

</description>
<parameters>
<parameter name="caps">
<parameter_description> a writable caps
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> name of the field to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value to set the field to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_caps_simplify">
<description>
Converts the given @caps into a representation that represents the
same set of formats, but in a simpler form.  Component structures that are
identical are merged.  Component structures that have values that can be
merged are also merged.

This method does not preserve the original order of @caps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps to simplify
</parameter_description>
</parameter>
</parameters>
<return> The simplified caps.
</return>
</function>

<function name="gst_caps_steal_structure">
<description>
Retrieves the structure with the given index from the list of structures
contained in @caps. The caller becomes the owner of the returned structure.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to retrieve from
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> Index of the structure to retrieve
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GstStructure corresponding
to @index.
</return>
</function>

<function name="gst_caps_subtract">
<description>
Subtracts the @subtrahend from the @minuend.
&lt;note&gt;This function does not work reliably if optional properties for caps
are included on one caps and omitted on the other.&lt;/note&gt;


</description>
<parameters>
<parameter name="minuend">
<parameter_description> #GstCaps to subtract from
</parameter_description>
</parameter>
<parameter name="subtrahend">
<parameter_description> #GstCaps to subtract
</parameter_description>
</parameter>
</parameters>
<return> the resulting caps
</return>
</function>

<function name="gst_caps_take">
<description>
Modifies a pointer to a #GstCaps to point to a different #GstCaps. This
function is similar to gst_caps_replace() except that it takes ownership
of @new_caps.


</description>
<parameters>
<parameter name="old_caps">
<parameter_description> pointer to a pointer to a #GstCaps to be
replaced.
</parameter_description>
</parameter>
<parameter name="new_caps">
<parameter_description> pointer to a #GstCaps that will
replace the caps pointed to by @ocaps.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @new_caps was different from @old_caps
</return>
</function>

<function name="gst_caps_to_string">
<description>
Converts @caps to a string representation.  This string representation
can be converted back to a #GstCaps by gst_caps_from_string().

For debugging purposes its easier to do something like this:
|[
GST_LOG (&quot;caps are %&quot; GST_PTR_FORMAT, caps);
]|
This prints the caps in human readable form.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated string representing @caps.
</return>
</function>

<function name="gst_caps_truncate">
<description>
Discard all but the first structure from @caps. Useful when
fixating.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to truncate
</parameter_description>
</parameter>
</parameters>
<return> truncated caps
</return>
</function>

<function name="gst_caps_unref">
<description>
Unref a #GstCaps and and free all its structures and the
structures' values when the refcount reaches 0.

</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_check_buffer_data">
<description>
Compare the buffer contents with @data and @size.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> buffer to compare
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to compare to
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of data to compare
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_check_caps_equal">
<description>
Compare two caps with gst_caps_is_equal and fail unless they are
equal.

</description>
<parameters>
<parameter name="caps1">
<parameter_description> first caps to compare
</parameter_description>
</parameter>
<parameter name="caps2">
<parameter_description> second caps to compare
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_check_drop_buffers">
<description>
Unref and remove all buffers that are in the global @buffers GList,
emptying the list.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_check_element_push_buffer">
<description>
Create an @element with the factory with the name and push the
@buffer_in to this element. The element should create one buffer
and this will be compared with @buffer_out. We only check the caps
and the data of the buffers. This function unrefs the buffers.

</description>
<parameters>
<parameter name="element_name">
<parameter_description> name of the element that needs to be created
</parameter_description>
</parameter>
<parameter name="buffer_in">
<parameter_description> push this buffer to the element
</parameter_description>
</parameter>
<parameter name="buffer_out">
<parameter_description> compare the result with this buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_check_element_push_buffer_list">
<description>
Create an @element with the factory with the name and push the buffers in
@buffer_in to this element. The element should create the buffers equal to
the buffers in @buffer_out. We only check the caps, size and the data of the
buffers. This function unrefs the buffers in the two lists.
The last_flow_return parameter indicates the expected flow return value from
pushing the final buffer in the list.
This can be used to set up a test which pushes some buffers and then an
invalid buffer, when the final buffer is expected to fail, for example.

</description>
<parameters>
<parameter name="element_name">
<parameter_description> name of the element that needs to be created
</parameter_description>
</parameter>
<parameter name="buffer_in">
<parameter_description> a list of buffers that needs to be
puched to the element
</parameter_description>
</parameter>
<parameter name="buffer_out">
<parameter_description> a list of buffers that we expect from
the element
</parameter_description>
</parameter>
<parameter name="last_flow_return">
<parameter_description> the last buffer push needs to give this GstFlowReturn
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_check_setup_element">
<description>
setup an element for a filter test with mysrcpad and mysinkpad


</description>
<parameters>
<parameter name="factory">
<parameter_description> factory
</parameter_description>
</parameter>
</parameters>
<return> a new element
</return>
</function>

<function name="gst_check_setup_events">
<description>
Push stream-start, caps and segment event, which concist of the minimum required
events to allow streaming. Caps is optional to allow raw src testing.

</description>
<parameters>
<parameter name="srcpad">
<parameter_description> The src #GstPad to push on
</parameter_description>
</parameter>
<parameter name="element">
<parameter_description> The #GstElement use to create the stream id
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> #GstCaps in case caps event must be sent
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The #GstFormat of the default segment to send
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_check_setup_sink_pad">
<description>

</description>
<parameters>
<parameter name="element">
<parameter_description> element to setup pad on
</parameter_description>
</parameter>
<parameter name="tmpl">
<parameter_description> pad template
</parameter_description>
</parameter>
</parameters>
<return> a new pad
</return>
</function>

<function name="gst_check_setup_sink_pad_by_name">
<description>

</description>
<parameters>
<parameter name="element">
<parameter_description> element to setup pad on
</parameter_description>
</parameter>
<parameter name="tmpl">
<parameter_description> pad template
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name
</parameter_description>
</parameter>
</parameters>
<return> a new pad
</return>
</function>

<function name="gst_check_setup_src_pad">
<description>

</description>
<parameters>
<parameter name="element">
<parameter_description> element to setup pad on
</parameter_description>
</parameter>
<parameter name="tmpl">
<parameter_description> pad template
</parameter_description>
</parameter>
</parameters>
<return> a new pad
</return>
</function>

<function name="gst_check_setup_src_pad_by_name">
<description>

</description>
<parameters>
<parameter name="element">
<parameter_description> element to setup pad on
</parameter_description>
</parameter>
<parameter name="tmpl">
<parameter_description> pad template
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name
</parameter_description>
</parameter>
</parameters>
<return> a new pad
</return>
</function>

<function name="gst_child_proxy_child_added">
<description>
Emits the &quot;child-added&quot; signal.

</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent object
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the newly added child
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the new child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_child_proxy_child_removed">
<description>
Emits the &quot;child-removed&quot; signal.

</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent object
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the removed child
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the old child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_child_proxy_get">
<description>
Gets properties of the parent object and its children.

</description>
<parameters>
<parameter name="object">
<parameter_description> the parent object
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> name of the first property to get
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> return location for the first property, followed optionally by more name/return location pairs, followed by NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_child_proxy_get_child_by_index">
<description>
Fetches a child by its number.


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent object to get the child from
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the childs position in the child list
</parameter_description>
</parameter>
</parameters>
<return> the child object or %NULL if not found (index
too high). Unref after usage.

MT safe.
</return>
</function>

<function name="gst_child_proxy_get_child_by_name">
<description>
Looks up a child element by the given name.

This virtual method has a default implementation that uses #GstObject
together with gst_object_get_name(). If the interface is to be used with
#GObjects, this methods needs to be overridden.


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent object to get the child from
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the childs name
</parameter_description>
</parameter>
</parameters>
<return> the child object or %NULL if not found. Unref
after usage.

MT safe.
</return>
</function>

<function name="gst_child_proxy_get_children_count">
<description>
Gets the number of child objects this parent contains.


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent object
</parameter_description>
</parameter>
</parameters>
<return> the number of child objects

MT safe.
</return>
</function>

<function name="gst_child_proxy_get_property">
<description>
Gets a single property using the GstChildProxy mechanism.
You are responsible for freeing it by calling g_value_unset()

</description>
<parameters>
<parameter name="object">
<parameter_description> object to query
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of the property
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue that should take the result.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_child_proxy_get_valist">
<description>
Gets properties of the parent object and its children.

</description>
<parameters>
<parameter name="object">
<parameter_description> the object to query
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> name of the first property to get
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> return location for the first property, followed optionally by more name/return location pairs, followed by NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_child_proxy_lookup">
<description>
Looks up which object and #GParamSpec would be effected by the given @name.

MT safe.


</description>
<parameters>
<parameter name="object">
<parameter_description> child proxy object to lookup the property in
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of the property to look up
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> pointer to a #GObject that
takes the real object to set property on
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> pointer to take the #GParamSpec
describing the property
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @target and @pspec could be found. FALSE otherwise. In that
case the values for @pspec and @target are not modified. Unref @target after
usage. For plain GObjects @target is the same as @object.
</return>
</function>

<function name="gst_child_proxy_set">
<description>
Sets properties of the parent object and its children.

</description>
<parameters>
<parameter name="object">
<parameter_description> the parent object
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> name of the first property to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> value for the first property, followed optionally by more name/value pairs, followed by NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_child_proxy_set_property">
<description>
Sets a single property using the GstChildProxy mechanism.

</description>
<parameters>
<parameter name="object">
<parameter_description> the parent object
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of the property to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> new #GValue for the property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_child_proxy_set_valist">
<description>
Sets properties of the parent object and its children.

</description>
<parameters>
<parameter name="object">
<parameter_description> the parent object
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> name of the first property to set
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> value for the first property, followed optionally by more name/value pairs, followed by NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_clock_add_observation">
<description>
The time @master of the master clock and the time @slave of the slave
clock are added to the list of observations. If enough observations
are available, a linear regression algorithm is run on the
observations and @clock is recalibrated.

If this functions returns %TRUE, @r_squared will contain the 
correlation coefficient of the interpolation. A value of 1.0
means a perfect regression was performed. This value can
be used to control the sampling frequency of the master and slave
clocks.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock 
</parameter_description>
</parameter>
<parameter name="slave">
<parameter_description> a time on the slave
</parameter_description>
</parameter>
<parameter name="master">
<parameter_description> a time on the master
</parameter_description>
</parameter>
<parameter name="r_squared">
<parameter_description> a pointer to hold the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if enough observations were added to run the 
regression algorithm.

MT safe.
</return>
</function>

<function name="gst_clock_adjust_unlocked">
<description>
Converts the given @internal clock time to the external time, adjusting for the
rate and reference time set with gst_clock_set_calibration() and making sure
that the returned time is increasing. This function should be called with the
clock's OBJECT_LOCK held and is mainly used by clock subclasses.

This function is the reverse of gst_clock_unadjust_unlocked().


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock to use
</parameter_description>
</parameter>
<parameter name="internal">
<parameter_description> a clock time
</parameter_description>
</parameter>
</parameters>
<return> the converted time of the clock.
</return>
</function>

<function name="gst_clock_get_calibration">
<description>
Gets the internal rate and reference time of @clock. See
gst_clock_set_calibration() for more information.

@internal, @external, @rate_num, and @rate_denom can be left %NULL if the
caller is not interested in the values.

MT safe.

</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock 
</parameter_description>
</parameter>
<parameter name="internal">
<parameter_description> a location to store the internal time
</parameter_description>
</parameter>
<parameter name="external">
<parameter_description> a location to store the external time
</parameter_description>
</parameter>
<parameter name="rate_num">
<parameter_description> a location to store the rate numerator
</parameter_description>
</parameter>
<parameter name="rate_denom">
<parameter_description> a location to store the rate denominator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_clock_get_internal_time">
<description>
Gets the current internal time of the given clock. The time is returned
unadjusted for the offset and the rate.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock to query
</parameter_description>
</parameter>
</parameters>
<return> the internal time of the clock. Or GST_CLOCK_TIME_NONE when
given invalid input.

MT safe.
</return>
</function>

<function name="gst_clock_get_master">
<description>
Get the master clock that @clock is slaved to or %NULL when the clock is
not slaved to any master clock.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock 
</parameter_description>
</parameter>
</parameters>
<return> a master #GstClock or %NULL when this clock is
not slaved to a master clock. Unref after usage.

MT safe.
</return>
</function>

<function name="gst_clock_get_resolution">
<description>
Get the accuracy of the clock. The accuracy of the clock is the granularity
of the values returned by gst_clock_get_time().


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock
</parameter_description>
</parameter>
</parameters>
<return> the resolution of the clock in units of #GstClockTime.

MT safe.
</return>
</function>

<function name="gst_clock_get_time">
<description>
Gets the current time of the given clock. The time is always
monotonically increasing and adjusted according to the current
offset and rate.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock to query
</parameter_description>
</parameter>
</parameters>
<return> the time of the clock. Or GST_CLOCK_TIME_NONE when
given invalid input.

MT safe.
</return>
</function>

<function name="gst_clock_get_timeout">
<description>
Get the amount of time that master and slave clocks are sampled.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock
</parameter_description>
</parameter>
</parameters>
<return> the interval between samples.
</return>
</function>

<function name="gst_clock_id_compare_func">
<description>
Compares the two #GstClockID instances. This function can be used
as a GCompareFunc when sorting ids.


</description>
<parameters>
<parameter name="id1">
<parameter_description> A #GstClockID
</parameter_description>
</parameter>
<parameter name="id2">
<parameter_description> A #GstClockID to compare with
</parameter_description>
</parameter>
</parameters>
<return> negative value if a &lt; b; zero if a = b; positive value if a &gt; b

MT safe.
</return>
</function>

<function name="gst_clock_id_get_time">
<description>
Get the time of the clock ID


</description>
<parameters>
<parameter name="id">
<parameter_description> The #GstClockID to query
</parameter_description>
</parameter>
</parameters>
<return> the time of the given clock id.

MT safe.
</return>
</function>

<function name="gst_clock_id_ref">
<description>
Increase the refcount of given @id.


</description>
<parameters>
<parameter name="id">
<parameter_description> The #GstClockID to ref
</parameter_description>
</parameter>
</parameters>
<return> The same #GstClockID with increased refcount.

MT safe.
</return>
</function>

<function name="gst_clock_id_unref">
<description>
Unref given @id. When the refcount reaches 0 the
#GstClockID will be freed.

MT safe.

</description>
<parameters>
<parameter name="id">
<parameter_description> The #GstClockID to unref
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_clock_id_unschedule">
<description>
Cancel an outstanding request with @id. This can either
be an outstanding async notification or a pending sync notification.
After this call, @id cannot be used anymore to receive sync or
async notifications, you need to create a new #GstClockID.

MT safe.

</description>
<parameters>
<parameter name="id">
<parameter_description> The id to unschedule
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_clock_id_wait">
<description>
Perform a blocking wait on @id. 
@id should have been created with gst_clock_new_single_shot_id()
or gst_clock_new_periodic_id() and should not have been unscheduled
with a call to gst_clock_id_unschedule(). 

If the @jitter argument is not %NULL and this function returns #GST_CLOCK_OK
or #GST_CLOCK_EARLY, it will contain the difference
against the clock and the time of @id when this method was
called. 
Positive values indicate how late @id was relative to the clock
(in which case this function will return #GST_CLOCK_EARLY). 
Negative values indicate how much time was spent waiting on the clock 
before this function returned.


</description>
<parameters>
<parameter name="id">
<parameter_description> The #GstClockID to wait on
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> a pointer that will contain the jitter,
can be %NULL.
</parameter_description>
</parameter>
</parameters>
<return> the result of the blocking wait. #GST_CLOCK_EARLY will be returned
if the current clock time is past the time of @id, #GST_CLOCK_OK if 
@id was scheduled in time. #GST_CLOCK_UNSCHEDULED if @id was 
unscheduled with gst_clock_id_unschedule().

MT safe.
</return>
</function>

<function name="gst_clock_id_wait_async">
<description>
Register a callback on the given #GstClockID @id with the given
function and user_data. When passing a #GstClockID with an invalid
time to this function, the callback will be called immediately
with  a time set to GST_CLOCK_TIME_NONE. The callback will
be called when the time of @id has been reached.

The callback @func can be invoked from any thread, either provided by the
core or from a streaming thread. The application should be prepared for this.


</description>
<parameters>
<parameter name="id">
<parameter_description> a #GstClockID to wait on
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> The callback function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data passed in the callback
</parameter_description>
</parameter>
<parameter name="destroy_data">
<parameter_description> #GDestroyNotify for user_data
</parameter_description>
</parameter>
</parameters>
<return> the result of the non blocking wait.

MT safe.
</return>
</function>

<function name="gst_clock_new_periodic_id">
<description>
Get an ID from @clock to trigger a periodic notification.
The periodic notifications will start at time @start_time and
will then be fired with the given @interval. @id should be unreffed
after usage.

Free-function: gst_clock_id_unref


</description>
<parameters>
<parameter name="clock">
<parameter_description> The #GstClockID to get a periodic notification id from
</parameter_description>
</parameter>
<parameter name="start_time">
<parameter_description> the requested start time
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> the requested interval
</parameter_description>
</parameter>
</parameters>
<return> a #GstClockID that can be used to request the
time notification.

MT safe.
</return>
</function>

<function name="gst_clock_new_single_shot_id">
<description>
Get a #GstClockID from @clock to trigger a single shot
notification at the requested time. The single shot id should be
unreffed after usage.

Free-function: gst_clock_id_unref


</description>
<parameters>
<parameter name="clock">
<parameter_description> The #GstClockID to get a single shot notification from
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the requested time
</parameter_description>
</parameter>
</parameters>
<return> a #GstClockID that can be used to request the
time notification.

MT safe.
</return>
</function>

<function name="gst_clock_periodic_id_reinit">
<description>
Reinitializes the provided periodic @id to the provided start time and
interval. Does not modify the reference count.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a #GstClockID
</parameter_description>
</parameter>
<parameter name="start_time">
<parameter_description> the requested start time
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> the requested interval
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the GstClockID could be reinitialized to the provided
@time, else %FALSE.
</return>
</function>

<function name="gst_clock_set_calibration">
<description>
Adjusts the rate and time of @clock. A rate of 1/1 is the normal speed of
the clock. Values bigger than 1/1 make the clock go faster.

@internal and @external are calibration parameters that arrange that
gst_clock_get_time() should have been @external at internal time @internal.
This internal time should not be in the future; that is, it should be less
than the value of gst_clock_get_internal_time() when this function is called.

Subsequent calls to gst_clock_get_time() will return clock times computed as
follows:

&lt;programlisting&gt;
time = (internal_time - internal) * rate_num / rate_denom + external
&lt;/programlisting&gt;

This formula is implemented in gst_clock_adjust_unlocked(). Of course, it
tries to do the integer arithmetic as precisely as possible.

Note that gst_clock_get_time() always returns increasing values so when you
move the clock backwards, gst_clock_get_time() will report the previous value
until the clock catches up.

MT safe.

</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock to calibrate
</parameter_description>
</parameter>
<parameter name="internal">
<parameter_description> a reference internal time
</parameter_description>
</parameter>
<parameter name="external">
<parameter_description> a reference external time
</parameter_description>
</parameter>
<parameter name="rate_num">
<parameter_description> the numerator of the rate of the clock relative to its
internal time 
</parameter_description>
</parameter>
<parameter name="rate_denom">
<parameter_description> the denominator of the rate of the clock
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_clock_set_master">
<description>
Set @master as the master clock for @clock. @clock will be automatically
calibrated so that gst_clock_get_time() reports the same time as the
master clock.  

A clock provider that slaves its clock to a master can get the current
calibration values with gst_clock_get_calibration().

@master can be %NULL in which case @clock will not be slaved anymore. It will
however keep reporting its time adjusted with the last configured rate 
and time offsets.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock 
</parameter_description>
</parameter>
<parameter name="master">
<parameter_description> a master #GstClock 
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the clock is capable of being slaved to a master clock. 
Trying to set a master on a clock without the 
#GST_CLOCK_FLAG_CAN_SET_MASTER flag will make this function return %FALSE.

MT safe.
</return>
</function>

<function name="gst_clock_set_resolution">
<description>
Set the accuracy of the clock. Some clocks have the possibility to operate
with different accuracy at the expense of more resource usage. There is
normally no need to change the default resolution of a clock. The resolution
of a clock can only be changed if the clock has the
#GST_CLOCK_FLAG_CAN_SET_RESOLUTION flag set.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock
</parameter_description>
</parameter>
<parameter name="resolution">
<parameter_description> The resolution to set
</parameter_description>
</parameter>
</parameters>
<return> the new resolution of the clock.
</return>
</function>

<function name="gst_clock_set_timeout">
<description>
Set the amount of time, in nanoseconds, to sample master and slave
clocks

</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_clock_single_shot_id_reinit">
<description>
Reinitializes the provided single shot @id to the provided time. Does not
modify the reference count.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a #GstClockID
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> The requested time.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the GstClockID could be reinitialized to the provided
@time, else %FALSE.
</return>
</function>

<function name="gst_clock_unadjust_unlocked">
<description>
Converts the given @external clock time to the internal time of @clock,
using the rate and reference time set with gst_clock_set_calibration().
This function should be called with the clock's OBJECT_LOCK held and
is mainly used by clock subclasses.

This function is the reverse of gst_clock_adjust_unlocked().


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock to use
</parameter_description>
</parameter>
<parameter name="external">
<parameter_description> an external clock time
</parameter_description>
</parameter>
</parameters>
<return> the internal time of the clock corresponding to @external.
</return>
</function>

<function name="gst_codec_utils_aac_caps_set_level_and_profile">
<description>
Sets the level and profile on @caps if it can be determined from
@audio_config. See gst_codec_utils_aac_get_level() and
gst_codec_utils_aac_get_profile() for more details on the parameters.
@caps must be audio/mpeg caps with an &quot;mpegversion&quot; field of either 2 or 4.
If mpegversion is 4, the &quot;base-profile&quot; field is also set in @caps.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to which level and profile fields are to be added
</parameter_description>
</parameter>
<parameter name="audio_config">
<parameter_description> a pointer to the AudioSpecificConfig as specified in the
Elementary Stream Descriptor (esds) in ISO/IEC 14496-1 (see
below for a more details).
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of @audio_config in bytes
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the level and profile could be set, %FALSE otherwise.
</return>
</function>

<function name="gst_codec_utils_aac_get_level">
<description>
Determines the level of a stream as defined in ISO/IEC 14496-3. For AAC LC
streams, the constraints from the AAC audio profile are applied. For AAC
Main, LTP, SSR and others, the Main profile is used.

The @audio_config parameter follows the following format, starting from the
most significant bit of the first byte:

&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
Bit 0:4 contains the AudioObjectType
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Bit 5:8 contains the sample frequency index (if this is 0xf, then the
next 24 bits define the actual sample frequency, and subsequent
fields are appropriately shifted).
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
Bit 9:12 contains the channel configuration
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

&lt;note&gt;
HE-AAC support has not yet been implemented.
&lt;/note&gt;


</description>
<parameters>
<parameter name="audio_config">
<parameter_description> a pointer to the AudioSpecificConfig as specified in the
Elementary Stream Descriptor (esds) in ISO/IEC 14496-1.
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of @audio_config in bytes
</parameter_description>
</parameter>
</parameters>
<return> The level as a const string and %NULL if the level could not be
determined.
</return>
</function>

<function name="gst_codec_utils_aac_get_profile">
<description>
Returns the profile of the given AAC stream as a string. The profile is
determined using the AudioObjectType field which is in the first 5 bits of
@audio_config.

&lt;note&gt;
HE-AAC support has not yet been implemented.
&lt;/note&gt;


</description>
<parameters>
<parameter name="audio_config">
<parameter_description> a pointer to the AudioSpecificConfig as specified in the
Elementary Stream Descriptor (esds) in ISO/IEC 14496-1 (see
gst_codec_utils_aac_get_level() for a more details).
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of @audio_config in bytes
</parameter_description>
</parameter>
</parameters>
<return> The profile as a const string and %NULL if the profile could not be
determined.
</return>
</function>

<function name="gst_codec_utils_aac_get_sample_rate_from_index">
<description>
Translates the sample rate index found in AAC headers to the actual sample
rate.


</description>
<parameters>
<parameter name="sr_idx">
<parameter_description> Sample rate index as from the AudioSpecificConfig (MPEG-4
container) or ADTS frame header
</parameter_description>
</parameter>
</parameters>
<return> The sample rate if @sr_idx is valid, 0 otherwise.
</return>
</function>

<function name="gst_codec_utils_h264_caps_set_level_and_profile">
<description>
Sets the level and profile in @caps if it can be determined from @sps. See
gst_codec_utils_h264_get_level() and gst_codec_utils_h264_get_profile()
for more details on the parameters.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to which the level and profile are to be added
</parameter_description>
</parameter>
<parameter name="sps">
<parameter_description> Pointer to the sequence parameter set for the stream.
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of the data available in @sps.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the level and profile could be set, %FALSE otherwise.
</return>
</function>

<function name="gst_codec_utils_h264_get_level">
<description>
Converts the level indication (level_idc) in the stream's
sequence parameter set into a string. The SPS is expected to have the
same format as for gst_codec_utils_h264_get_profile().


</description>
<parameters>
<parameter name="sps">
<parameter_description> Pointer to the sequence parameter set for the stream.
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of the data available in @sps.
</parameter_description>
</parameter>
</parameters>
<return> The level as a const string, or %NULL if there is an error.
</return>
</function>

<function name="gst_codec_utils_h264_get_level_idc">
<description>
Transform a level string from the caps into the level_idc


</description>
<parameters>
<parameter name="level">
<parameter_description> A level string from caps
</parameter_description>
</parameter>
</parameters>
<return> the level_idc or 0 if the level is unknown
</return>
</function>

<function name="gst_codec_utils_h264_get_profile">
<description>
Converts the profile indication (profile_idc) in the stream's
sequence parameter set into a string. The SPS is expected to have the
following format, as defined in the H.264 specification. The SPS is viewed
as a bitstream here, with bit 0 being the most significant bit of the first
byte.

&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;Bit 0:7   - Profile indication&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Bit 8     - constraint_set0_flag&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Bit 9     - constraint_set1_flag&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Bit 10    - constraint_set2_flag&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Bit 11    - constraint_set3_flag&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Bit 12    - constraint_set3_flag&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Bit 13:15 - Reserved&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Bit 16:24 - Level indication&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
<parameter name="sps">
<parameter_description> Pointer to the sequence parameter set for the stream.
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of the data available in @sps.
</parameter_description>
</parameter>
</parameters>
<return> The profile as a const string, or %NULL if there is an error.
</return>
</function>

<function name="gst_codec_utils_mpeg4video_caps_set_level_and_profile">
<description>
Sets the level and profile in @caps if it can be determined from
@vis_obj_seq. See gst_codec_utils_mpeg4video_get_level() and
gst_codec_utils_mpeg4video_get_profile() for more details on the
parameters.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the #GstCaps to which the level and profile are to be added
</parameter_description>
</parameter>
<parameter name="vis_obj_seq">
<parameter_description> Pointer to the visual object sequence for the stream.
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of the data available in @sps.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the level and profile could be set, %FALSE otherwise.
</return>
</function>

<function name="gst_codec_utils_mpeg4video_get_level">
<description>
Converts the level indication in the stream's visual object sequence into
a string. @vis_obj_seq is expected to be the data following the visual
object sequence start code. Only the first byte
(profile_and_level_indication) is used.


</description>
<parameters>
<parameter name="vis_obj_seq">
<parameter_description> Pointer to the visual object sequence for the stream.
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of the data available in @sps.
</parameter_description>
</parameter>
</parameters>
<return> The level as a const string, or NULL if there is an error.
</return>
</function>

<function name="gst_codec_utils_mpeg4video_get_profile">
<description>
Converts the profile indication in the stream's visual object sequence into
a string. @vis_obj_seq is expected to be the data following the visual
object sequence start code. Only the first byte
(profile_and_level_indication) is used.


</description>
<parameters>
<parameter name="vis_obj_seq">
<parameter_description> Pointer to the visual object sequence for the stream.
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> Length of the data available in @sps.
</parameter_description>
</parameter>
</parameters>
<return> The profile as a const string, or NULL if there is an error.
</return>
</function>

<function name="gst_collect_pads_add_pad">
<description>
Add a pad to the collection of collect pads. The pad has to be
a sinkpad. The refcount of the pad is incremented. Use
gst_collect_pads_remove_pad() to remove the pad from the collection
again.

You specify a size for the returned #GstCollectData structure
so that you can use it to store additional information.

You can also specify a #GstCollectDataDestroyNotify that will be called
just before the #GstCollectData structure is freed. It is passed the
pointer to the structure and should free any custom memory and resources
allocated for it.

Keeping a pad locked in waiting state is only relevant when using
the default collection algorithm (providing the oldest buffer).
It ensures a buffer must be available on this pad for a collection
to take place.  This is of typical use to a muxer element where
non-subtitle streams should always be in waiting state,
e.g. to assure that caps information is available on all these streams
when initial headers have to be written.

The pad will be automatically activated in push mode when @pads is
started.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the pad to add
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the returned #GstCollectData structure
</parameter_description>
</parameter>
<parameter name="destroy_notify">
<parameter_description> function to be called before the returned #GstCollectData
structure is freed
</parameter_description>
</parameter>
<parameter name="lock">
<parameter_description> whether to lock this pad in usual waiting state
</parameter_description>
</parameter>
</parameters>
<return> a new #GstCollectData to identify the new pad. Or NULL
if wrong parameters are supplied.
</return>
</function>

<function name="gst_collect_pads_available">
<description>
Query how much bytes can be read from each queued buffer. This means
that the result of this call is the maximum number of bytes that can
be read from each of the pads.

This function should be called with @pads STREAM_LOCK held, such as
in the callback.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to query
</parameter_description>
</parameter>
</parameters>
<return> The maximum number of bytes queued on all pads. This function
returns 0 if a pad has no queued buffer.
</return>
</function>

<function name="gst_collect_pads_clip_running_time">
<description>
Convenience clipping function that converts incoming buffer's timestamp
to running time, or clips the buffer if outside configured segment.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="cdata">
<parameter_description> collect data of corresponding pad
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> buffer being clipped
</parameter_description>
</parameter>
<parameter name="outbuf">
<parameter_description> output buffer with running time, or NULL if clipped
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data (unused)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_event_default">
<description>
Default GstCollectPads event handling that elements should always
chain up to to ensure proper operation.  Element might however indicate
event should not be forwarded downstream.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> collect data of corresponding pad
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> event being processed
</parameter_description>
</parameter>
<parameter name="discard">
<parameter_description> process but do not send event downstream
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_find_best_pad">
<description>
Find the oldest/best pad, i.e. pad holding the oldest buffer and
and return the corresponding #GstCollectData and buffertime.

This function should be called with STREAM_LOCK held,
such as in the callback.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> returns the collectdata for earliest data
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> returns the earliest available buffertime
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_flush">
<description>
Flush @size bytes from the pad @data.

This function should be called with @pads STREAM_LOCK held, such as
in the callback.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to query
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to use
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the number of bytes to flush
</parameter_description>
</parameter>
</parameters>
<return> The number of bytes flushed This can be less than @size and
is 0 if the pad was end-of-stream.
</return>
</function>

<function name="gst_collect_pads_new">
<description>
Create a new instance of #GstCollectPads.

MT safe.


</description>
<parameters>
</parameters>
<return> a new #GstCollectPads, or NULL in case of an error.
</return>
</function>

<function name="gst_collect_pads_peek">
<description>
Peek at the buffer currently queued in @data. This function
should be called with the @pads STREAM_LOCK held, such as in the callback
handler.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to peek
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to use
</parameter_description>
</parameter>
</parameters>
<return> The buffer in @data or NULL if no buffer is queued.
should unref the buffer after usage.
</return>
</function>

<function name="gst_collect_pads_pop">
<description>
Pop the buffer currently queued in @data. This function
should be called with the @pads STREAM_LOCK held, such as in the callback
handler.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to pop
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to use
</parameter_description>
</parameter>
</parameters>
<return> The buffer in @data or NULL if no buffer was
queued. You should unref the buffer after usage.
</return>
</function>

<function name="gst_collect_pads_query_default">
<description>
Default GstCollectPads query handling that elements should always
chain up to to ensure proper operation.  Element might however indicate
query should not be forwarded downstream.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> collect data of corresponding pad
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> query being processed
</parameter_description>
</parameter>
<parameter name="discard">
<parameter_description> process but do not send event downstream
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_read_buffer">
<description>
Get a subbuffer of @size bytes from the given pad @data.

This function should be called with @pads STREAM_LOCK held, such as in the
callback.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to query
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to use
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the number of bytes to read
</parameter_description>
</parameter>
</parameters>
<return> A sub buffer. The size of the buffer can be less that requested.
A return of NULL signals that the pad is end-of-stream.
Unref the buffer after use.
</return>
</function>

<function name="gst_collect_pads_remove_pad">
<description>
Remove a pad from the collection of collect pads. This function will also
free the #GstCollectData and all the resources that were allocated with
gst_collect_pads_add_pad().

The pad will be deactivated automatically when @pads is stopped.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the pad to remove
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the pad could be removed.
</return>
</function>

<function name="gst_collect_pads_set_buffer_function">
<description>
Set the callback function and user data that will be called with
the oldest buffer when all pads have been collected, or NULL on EOS.
If a buffer is passed, the callback owns a reference and must unref
it.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to set
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_set_clip_function">
<description>
Install a clipping function that is called right after a buffer is received
on a pad managed by @pads. See #GstCollectPadsClipFunction for more info.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="clipfunc">
<parameter_description> clip function to install
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @clip_func
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_set_compare_function">
<description>
Set the timestamp comparison function.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the pads to use
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to set
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_set_event_function">
<description>
Set the event callback function and user data that will be called when
collectpads has received an event originating from one of the collected
pads.  If the event being processed is a serialized one, this callback is
called with @pads STREAM_LOCK held, otherwise not.  As this lock should be
held when calling a number of CollectPads functions, it should be acquired
if so (unusually) needed.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to set
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_set_flushing">
<description>
Change the flushing state of all the pads in the collection. No pad
is able to accept anymore data when @flushing is %TRUE. Calling this
function with @flushing %FALSE makes @pads accept data again.
Caller must ensure that downstream streaming (thread) is not blocked,
e.g. by sending a FLUSH_START downstream.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="flushing">
<parameter_description> desired state of the pads
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_set_function">
<description>
CollectPads provides a default collection algorithm that will determine
the oldest buffer available on all of its pads, and then delegate
to a configured callback.
However, if circumstances are more complicated and/or more control
is desired, this sets a callback that will be invoked instead when
all the pads added to the collection have buffers queued.
Evidently, this callback is not compatible with
gst_collect_pads_set_buffer_function() callback.
If this callback is set, the former will be unset.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to set
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_set_query_function">
<description>
Set the query callback function and user data that will be called after
collectpads has received a query originating from one of the collected
pads.  If the query being processed is a serialized one, this callback is
called with @pads STREAM_LOCK held, otherwise not.  As this lock should be
held when calling a number of CollectPads functions, it should be acquired
if so (unusually) needed.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to set
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_set_waiting">
<description>
Sets a pad to waiting or non-waiting mode, if at least this pad
has not been created with locked waiting state,
in which case nothing happens.

This function should be called with @pads STREAM_LOCK held, such as
in the callback.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to use
</parameter_description>
</parameter>
<parameter name="waiting">
<parameter_description> boolean indicating whether this pad should operate
in waiting or non-waiting mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_start">
<description>
Starts the processing of data in the collect_pads.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_stop">
<description>
Stops the processing of data in the collect_pads. this function
will also unblock any blocking operations.

MT safe.

</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_collect_pads_take_buffer">
<description>
Get a subbuffer of @size bytes from the given pad @data. Flushes the amount
of read bytes.

This function should be called with @pads STREAM_LOCK held, such as in the
callback.

MT safe.


</description>
<parameters>
<parameter name="pads">
<parameter_description> the collectpads to query
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to use
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the number of bytes to read
</parameter_description>
</parameter>
</parameters>
<return> A sub buffer. The size of the buffer can be less that requested.
A return of NULL signals that the pad is end-of-stream.
Unref the buffer after use.
</return>
</function>

<function name="gst_color_balance_get_balance_type">
<description>
Get the #GstColorBalanceType of this implementation.


</description>
<parameters>
<parameter name="balance">
<parameter_description> The #GstColorBalance implementation
</parameter_description>
</parameter>
</parameters>
<return> A the #GstColorBalanceType.
</return>
</function>

<function name="gst_color_balance_get_value">
<description>
Retrieve the current value of the indicated channel, between min_value
and max_value.

See Also: The #GstColorBalanceChannel.min_value and
#GstColorBalanceChannel.max_value members of the
#GstColorBalanceChannel object.


</description>
<parameters>
<parameter name="balance">
<parameter_description> A #GstColorBalance instance
</parameter_description>
</parameter>
<parameter name="channel">
<parameter_description> A #GstColorBalanceChannel instance
</parameter_description>
</parameter>
</parameters>
<return> The current value of the channel.
</return>
</function>

<function name="gst_color_balance_list_channels">
<description>
Retrieve a list of the available channels.


</description>
<parameters>
<parameter name="balance">
<parameter_description> A #GstColorBalance instance
</parameter_description>
</parameter>
</parameters>
<return> A GList containing pointers to #GstColorBalanceChannel objects.
The list is owned by the #GstColorBalance instance and must not
be freed.
</return>
</function>

<function name="gst_color_balance_set_value">
<description>
Sets the current value of the channel to the passed value, which must
be between min_value and max_value.

See Also: The #GstColorBalanceChannel.min_value and
#GstColorBalanceChannel.max_value members of the
#GstColorBalanceChannel object.

</description>
<parameters>
<parameter name="balance">
<parameter_description> A #GstColorBalance instance
</parameter_description>
</parameter>
<parameter name="channel">
<parameter_description> A #GstColorBalanceChannel instance
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> The new value for the channel.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_color_balance_value_changed">
<description>
A helper function called by implementations of the GstColorBalance
interface. It fires the #GstColorBalance::value-changed signal on the
instance, and the #GstColorBalanceChannel::value-changed signal on the
channel object.

</description>
<parameters>
<parameter name="balance">
<parameter_description> A #GstColorBalance instance
</parameter_description>
</parameter>
<parameter name="channel">
<parameter_description> A #GstColorBalanceChannel whose value has changed
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> The new value of the channel
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_consistency_checker_add_pad">
<description>
Sets up a data probe on the given pad which will raise assertions if the
data flow is inconsistent.


</description>
<parameters>
<parameter name="consist">
<parameter_description> The #GstStreamConsistency handle
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> The #GstPad on which the dataflow will be checked.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the pad was added
</return>
</function>

<function name="gst_consistency_checker_free">
<description>
Frees the allocated data and probes associated with @consist.

</description>
<parameters>
<parameter name="consist">
<parameter_description> The #GstStreamConsistency to free.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_consistency_checker_new">
<description>
Sets up a data probe on the given pad which will raise assertions if the
data flow is inconsistent.


</description>
<parameters>
<parameter name="pad">
<parameter_description> The #GstPad on which the dataflow will be checked.
</parameter_description>
</parameter>
</parameters>
<return> A #GstStreamConsistency structure used to track data flow.
</return>
</function>

<function name="gst_consistency_checker_reset">
<description>
Reset the stream checker's internal variables.

</description>
<parameters>
<parameter name="consist">
<parameter_description> The #GstStreamConsistency to reset.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_context_copy">
<description>
Creates a copy of the context. Returns a copy of the context.


</description>
<parameters>
<parameter name="context">
<parameter_description> the context to copy
</parameter_description>
</parameter>
</parameters>
<return> a new copy of @context.

MT safe
</return>
</function>

<function name="gst_context_get_structure">
<description>
Access the structure of the context.


</description>
<parameters>
<parameter name="context">
<parameter_description> The #GstContext.
</parameter_description>
</parameter>
</parameters>
<return> The structure of the context. The structure is
still owned by the context, which means that you should not modify it,
free it and that the pointer becomes invalid when you free the context.

</return>
</function>

<function name="gst_context_is_writable">
<description>
Tests if you can safely write into a context's structure or validly
modify the seqnum and timestamp fields.

</description>
<parameters>
<parameter name="context">
<parameter_description> a #GstContext
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_context_make_writable">
<description>
Checks if a context is writable. If not, a writable copy is made and
returned.


</description>
<parameters>
<parameter name="context">
<parameter_description> the context to make writable
</parameter_description>
</parameter>
</parameters>
<return> a context (possibly a duplicate) that is writable.

MT safe
</return>
</function>

<function name="gst_context_new">
<description>
Create a new context.


</description>
<parameters>
</parameters>
<return> The new context.

</return>
</function>

<function name="gst_context_ref">
<description>
Convenience macro to increase the reference count of the context.


</description>
<parameters>
<parameter name="context">
<parameter_description> the context to ref
</parameter_description>
</parameter>
</parameters>
<return> @context (for convenience when doing assignments)
</return>
</function>

<function name="gst_context_replace">
<description>
Modifies a pointer to a #GstContext to point to a different #GstContext. The
modification is done atomically (so this is useful for ensuring thread safety
in some cases), and the reference counts are updated appropriately (the old
context is unreffed, the new one is reffed).

Either @new_context or the #GstContext pointed to by @old_context may be NULL.


</description>
<parameters>
<parameter name="old_context">
<parameter_description> pointer to a pointer to a #GstContext
to be replaced.
</parameter_description>
</parameter>
<parameter name="new_context">
<parameter_description> pointer to a #GstContext that will
replace the context pointed to by @old_context.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @new_context was different from @old_context
</return>
</function>

<function name="gst_context_unref">
<description>
Convenience macro to decrease the reference count of the context, possibly
freeing it.

</description>
<parameters>
<parameter name="context">
<parameter_description> the context to unref
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_context_writable_structure">
<description>
Get a writable version of the structure.


</description>
<parameters>
<parameter name="context">
<parameter_description> The #GstContext.
</parameter_description>
</parameter>
</parameters>
<return> The structure of the context. The structure is still
owned by the event, which means that you should not free it and
that the pointer becomes invalid when you free the event.
This function checks if @context is writable.

</return>
</function>

<function name="gst_control_binding_get_g_value_array">
<description>
Gets a number of #GValues for the given controlled property starting at the
requested time. The array @values need to hold enough space for @n_values of
#GValue.

This function is useful if one wants to e.g. draw a graph of the control
curve or apply a control curve sample by sample.


</description>
<parameters>
<parameter name="binding">
<parameter_description> the control binding
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time that should be processed
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> the time spacing between subsequent values
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the number of values
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> array to put control-values in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the given array could be filled, %FALSE otherwise
</return>
</function>

<function name="gst_control_binding_get_value">
<description>
Gets the value for the given controlled property at the requested time.


</description>
<parameters>
<parameter name="binding">
<parameter_description> the control binding
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time the control-change should be read from
</parameter_description>
</parameter>
</parameters>
<return> the GValue of the property at the given time, or %NULL if the
property isn't controlled.
</return>
</function>

<function name="gst_control_binding_get_value_array">
<description>
Gets a number of values for the given controlled property starting at the
requested time. The array @values need to hold enough space for @n_values of
the same type as the objects property's type.

This function is useful if one wants to e.g. draw a graph of the control
curve or apply a control curve sample by sample.

The values are unboxed and ready to be used. The similar function 
gst_control_binding_get_g_value_array() returns the array as #GValues and is
more suitable for bindings.


</description>
<parameters>
<parameter name="binding">
<parameter_description> the control binding
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time that should be processed
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> the time spacing between subsequent values
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the number of values
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> array to put control-values in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the given array could be filled, %FALSE otherwise
</return>
</function>

<function name="gst_control_binding_is_disabled">
<description>
Check if the control binding is disabled.


</description>
<parameters>
<parameter name="binding">
<parameter_description> the control binding
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the binding is inactive
</return>
</function>

<function name="gst_control_binding_set_disabled">
<description>
This function is used to disable a control binding for some time, i.e.
gst_object_sync_values() will do nothing.

</description>
<parameters>
<parameter name="binding">
<parameter_description> the control binding
</parameter_description>
</parameter>
<parameter name="disabled">
<parameter_description> boolean that specifies whether to disable the controller
or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_control_binding_sync_values">
<description>
Sets the property of the @object, according to the #GstControlSources that
handle them and for the given timestamp.

If this function fails, it is most likely the application developers fault.
Most probably the control sources are not setup correctly.


</description>
<parameters>
<parameter name="binding">
<parameter_description> the control binding
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time that should be processed
</parameter_description>
</parameter>
<parameter name="last_sync">
<parameter_description> the last time this was called
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the controller value could be applied to the object
property, %FALSE otherwise
</return>
</function>

<function name="gst_control_source_get_value">
<description>
Gets the value for this #GstControlSource at a given timestamp.


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstControlSource object
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time for which the value should be returned
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value
</parameter_description>
</parameter>
</parameters>
<return> FALSE if the value couldn't be returned, TRUE otherwise.
</return>
</function>

<function name="gst_control_source_get_value_array">
<description>
Gets an array of values for for this #GstControlSource. Values that are
undefined contain NANs.


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstControlSource object
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the first timestamp
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> the time steps
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the number of values to fetch
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> array to put control-values in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the given array could be filled, %FALSE otherwise
</return>
</function>

<function name="gst_data_queue_drop_head">
<description>
Pop and unref the head-most #GstMiniObject with the given #GType.


</description>
<parameters>
<parameter name="queue">
<parameter_description> The #GstDataQueue to drop an item from.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> The #GType of the item to drop.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if an element was removed.

</return>
</function>

<function name="gst_data_queue_flush">
<description>
Flushes all the contents of the @queue. Any call to #gst_data_queue_push and
#gst_data_queue_pop will be released.
MT safe.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstDataQueue.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_data_queue_get_level">
<description>
Get the current level of the queue.


</description>
<parameters>
<parameter name="queue">
<parameter_description> The #GstDataQueue
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> the location to store the result
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_data_queue_is_empty">
<description>
Queries if there are any items in the @queue.
MT safe.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstDataQueue.
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if @queue is empty.

</return>
</function>

<function name="gst_data_queue_is_full">
<description>
Queries if @queue is full. This check will be done using the
#GstDataQueueCheckFullFunction registered with @queue.
MT safe.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstDataQueue.
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if @queue is full.

</return>
</function>

<function name="gst_data_queue_limits_changed">
<description>
Inform the queue that the limits for the fullness check have changed and that
any blocking gst_data_queue_push() should be unblocked to recheck the limts.


</description>
<parameters>
<parameter name="queue">
<parameter_description> The #GstDataQueue 
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_data_queue_new">
<description>
Creates a new #GstDataQueue. The difference with @gst_data_queue_new is that it will
not emit the 'full' and 'empty' signals, but instead calling directly @fullcallback
or @emptycallback.


</description>
<parameters>
<parameter name="checkfull">
<parameter_description> the callback used to tell if the element considers the queue full
or not.
</parameter_description>
</parameter>
<parameter name="fullcallback">
<parameter_description> the callback which will be called when the queue is considered full.
</parameter_description>
</parameter>
<parameter name="emptycallback">
<parameter_description> the callback which will be called when the queue is considered empty.
</parameter_description>
</parameter>
<parameter name="checkdata">
<parameter_description> a #gpointer that will be given in the @checkfull callback.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstDataQueue.

</return>
</function>

<function name="gst_data_queue_peek">
<description>
Retrieves the first @item available on the @queue without removing it.
If the queue is currently empty, the call will block until at least
one item is available, OR the @queue is set to the flushing state.
MT safe.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstDataQueue.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> pointer to store the returned #GstDataQueueItem.
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if an @item was successfully retrieved from the @queue.

</return>
</function>

<function name="gst_data_queue_pop">
<description>
Retrieves the first @item available on the @queue. If the queue is currently
empty, the call will block until at least one item is available, OR the
@queue is set to the flushing state.
MT safe.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstDataQueue.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> pointer to store the returned #GstDataQueueItem.
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if an @item was successfully retrieved from the @queue.

</return>
</function>

<function name="gst_data_queue_push">
<description>
Pushes a #GstDataQueueItem (or a structure that begins with the same fields)
on the @queue. If the @queue is full, the call will block until space is
available, OR the @queue is set to flushing state.
MT safe.

Note that this function has slightly different semantics than gst_pad_push()
and gst_pad_push_event(): this function only takes ownership of @item and
the #GstMiniObject contained in @item if the push was successful. If FALSE
is returned, the caller is responsible for freeing @item and its contents.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstDataQueue.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> a #GstDataQueueItem.
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the @item was successfully pushed on the @queue.

</return>
</function>

<function name="gst_data_queue_set_flushing">
<description>
Sets the queue to flushing state if @flushing is #TRUE. If set to flushing
state, any incoming data on the @queue will be discarded. Any call currently
blocking on #gst_data_queue_push or #gst_data_queue_pop will return straight
away with a return value of #FALSE. While the @queue is in flushing state, 
all calls to those two functions will return #FALSE.

MT Safe.


</description>
<parameters>
<parameter name="queue">
<parameter_description> a #GstDataQueue.
</parameter_description>
</parameter>
<parameter name="flushing">
<parameter_description> a #gboolean stating if the queue will be flushing or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_date_time_get_day">
<description>
Returns the day of the month of this #GstDateTime.
Call gst_date_time_has_day before, to avoid warnings.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> The day of this #GstDateTime
</return>
</function>

<function name="gst_date_time_get_hour">
<description>
Retrieves the hour of the day represented by @datetime in the gregorian
calendar. The return is in the range of 0 to 23.
Call gst_date_time_has_haur before, to avoid warnings.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> the hour of the day
</return>
</function>

<function name="gst_date_time_get_microsecond">
<description>
Retrieves the fractional part of the seconds in microseconds represented by
@datetime in the gregorian calendar.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> the microsecond of the second
</return>
</function>

<function name="gst_date_time_get_minute">
<description>
Retrieves the minute of the hour represented by @datetime in the gregorian
calendar.
Call gst_date_time_has_minute before, to avoid warnings.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> the minute of the hour
</return>
</function>

<function name="gst_date_time_get_month">
<description>
Returns the month of this #GstDateTime. January is 1, February is 2, etc..
Call gst_date_time_has_month before, to avoid warnings.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> The month of this #GstDateTime
</return>
</function>

<function name="gst_date_time_get_second">
<description>
Retrieves the second of the minute represented by @datetime in the gregorian
calendar.
Call gst_date_time_has_second before, to avoid warnings.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> the second represented by @datetime
</return>
</function>

<function name="gst_date_time_get_time_zone_offset">
<description>
Retrieves the offset from UTC in hours that the timezone specified
by @datetime represents. Timezones ahead (to the east) of UTC have positive
values, timezones before (to the west) of UTC have negative values.
If @datetime represents UTC time, then the offset is zero.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> the offset from UTC in hours
</return>
</function>

<function name="gst_date_time_get_year">
<description>
Returns the year of this #GstDateTime
Call gst_date_time_has_year before, to avoid warnings.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> The year of this #GstDateTime
</return>
</function>

<function name="gst_date_time_has_day">
<description>

</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @datetime&lt;!-- --&gt;'s day field is set, otherwise FALSE
</return>
</function>

<function name="gst_date_time_has_month">
<description>

</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @datetime&lt;!-- --&gt;'s month field is set, otherwise FALSE
</return>
</function>

<function name="gst_date_time_has_second">
<description>

</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @datetime&lt;!-- --&gt;'s second field is set, otherwise FALSE
</return>
</function>

<function name="gst_date_time_has_time">
<description>

</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @datetime&lt;!-- --&gt;'s hour and minute fields are set,
otherwise FALSE
</return>
</function>

<function name="gst_date_time_has_year">
<description>

</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @datetime&lt;!-- --&gt;'s year field is set (which should always
be the case), otherwise FALSE
</return>
</function>

<function name="gst_date_time_new">
<description>
Creates a new #GstDateTime using the date and times in the gregorian calendar
in the supplied timezone.

@year should be from 1 to 9999, @month should be from 1 to 12, @day from
1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.

Note that @tzoffset is a float and was chosen so for being able to handle
some fractional timezones, while it still keeps the readability of
represeting it in hours for most timezones.

If value is -1 then all over value will be ignored. For example
if @month == -1, then #GstDateTime will created only for @year. If
@day == -1, then #GstDateTime will created for @year and @month and
so on.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="tzoffset">
<parameter_description> Offset from UTC in hours.
</parameter_description>
</parameter>
<parameter name="year">
<parameter_description> the gregorian year
</parameter_description>
</parameter>
<parameter name="month">
<parameter_description> the gregorian month
</parameter_description>
</parameter>
<parameter name="day">
<parameter_description> the day of the gregorian month
</parameter_description>
</parameter>
<parameter name="hour">
<parameter_description> the hour of the day
</parameter_description>
</parameter>
<parameter name="minute">
<parameter_description> the minute of the hour
</parameter_description>
</parameter>
<parameter name="seconds">
<parameter_description> the second of the minute
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstDateTime
</return>
</function>

<function name="gst_date_time_new_from_g_date_time">
<description>
Creates a new #GstDateTime from a #GDateTime object.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="dt">
<parameter_description> the #GDateTime. The new #GstDateTime takes ownership.
</parameter_description>
</parameter>
</parameters>
<return> a newly created #GstDateTime, or NULL on error
</return>
</function>

<function name="gst_date_time_new_from_iso8601_string">
<description>
Tries to parse common variants of ISO-8601 datetime strings into a
#GstDateTime.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="string">
<parameter_description> ISO 8601-formatted datetime string.
</parameter_description>
</parameter>
</parameters>
<return> a newly created #GstDateTime, or NULL on error
</return>
</function>

<function name="gst_date_time_new_from_unix_epoch_local_time">
<description>
Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
@secs. The #GstDateTime is in the local timezone.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="secs">
<parameter_description> seconds from the Unix epoch
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstDateTime
</return>
</function>

<function name="gst_date_time_new_from_unix_epoch_utc">
<description>
Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
@secs. The #GstDateTime is in the UTC timezone.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="secs">
<parameter_description> seconds from the Unix epoch
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstDateTime
</return>
</function>

<function name="gst_date_time_new_local_time">
<description>
Creates a new #GstDateTime using the date and times in the gregorian calendar
in the local timezone.

@year should be from 1 to 9999, @month should be from 1 to 12, @day from
1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.

If @month is -1, then the #GstDateTime created will only contain @year,
and all other fields will be considered not set.

If @day is -1, then the #GstDateTime created will only contain @year and
@month and all other fields will be considered not set.

If @hour is -1, then the #GstDateTime created will only contain @year and
@month and @day, and the time fields will be considered not set. In this
case @minute and @seconds should also be -1.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="year">
<parameter_description> the gregorian year
</parameter_description>
</parameter>
<parameter name="month">
<parameter_description> the gregorian month, or -1
</parameter_description>
</parameter>
<parameter name="day">
<parameter_description> the day of the gregorian month, or -1
</parameter_description>
</parameter>
<parameter name="hour">
<parameter_description> the hour of the day, or -1
</parameter_description>
</parameter>
<parameter name="minute">
<parameter_description> the minute of the hour, or -1
</parameter_description>
</parameter>
<parameter name="seconds">
<parameter_description> the second of the minute, or -1
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstDateTime
</return>
</function>

<function name="gst_date_time_new_now_local_time">
<description>
Creates a new #GstDateTime representing the current date and time.

Free-function: gst_date_time_unref


</description>
<parameters>
</parameters>
<return> the newly created #GstDateTime which should
be freed with gst_date_time_unref().
</return>
</function>

<function name="gst_date_time_new_now_utc">
<description>
Creates a new #GstDateTime that represents the current instant at Universal
coordinated time.

Free-function: gst_date_time_unref


</description>
<parameters>
</parameters>
<return> the newly created #GstDateTime which should
be freed with gst_date_time_unref().
</return>
</function>

<function name="gst_date_time_new_y">
<description>
Creates a new #GstDateTime using the date and times in the gregorian calendar
in the local timezone.

@year should be from 1 to 9999.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="year">
<parameter_description> the gregorian year
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstDateTime
</return>
</function>

<function name="gst_date_time_new_ym">
<description>
Creates a new #GstDateTime using the date and times in the gregorian calendar
in the local timezone.

@year should be from 1 to 9999, @month should be from 1 to 12.

If value is -1 then all over value will be ignored. For example
if @month == -1, then #GstDateTime will created only for @year.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="year">
<parameter_description> the gregorian year
</parameter_description>
</parameter>
<parameter name="month">
<parameter_description> the gregorian month
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstDateTime
</return>
</function>

<function name="gst_date_time_new_ymd">
<description>
Creates a new #GstDateTime using the date and times in the gregorian calendar
in the local timezone.

@year should be from 1 to 9999, @month should be from 1 to 12, @day from
1 to 31.

If value is -1 then all over value will be ignored. For example
if @month == -1, then #GstDateTime will created only for @year. If
@day == -1, then #GstDateTime will created for @year and @month and
so on.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="year">
<parameter_description> the gregorian year
</parameter_description>
</parameter>
<parameter name="month">
<parameter_description> the gregorian month
</parameter_description>
</parameter>
<parameter name="day">
<parameter_description> the day of the gregorian month
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstDateTime
</return>
</function>

<function name="gst_date_time_ref">
<description>
Atomically increments the reference count of @datetime by one.


</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return> the reference @datetime
</return>
</function>

<function name="gst_date_time_to_g_date_time">
<description>
Creates a new #GDateTime from a fully defined #GstDateTime object.

Free-function: g_date_time_unref


</description>
<parameters>
<parameter name="datetime">
<parameter_description> GstDateTime.
</parameter_description>
</parameter>
</parameters>
<return> a newly created #GDateTime, or NULL on error
</return>
</function>

<function name="gst_date_time_to_iso8601_string">
<description>
Create a minimal string compatible with ISO-8601. Possible output formats
are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100


</description>
<parameters>
<parameter name="datetime">
<parameter_description> GstDateTime.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated string formatted according to ISO 8601 and
only including the datetime fields that are valid, or NULL in case
there was an error. The string should be freed with g_free().
</return>
</function>

<function name="gst_date_time_unref">
<description>
Atomically decrements the reference count of @datetime by one.  When the
reference count reaches zero, the structure is freed.

</description>
<parameters>
<parameter name="datetime">
<parameter_description> a #GstDateTime
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_add_log_function">
<description>
Adds the logging function to the list of logging functions.
Be sure to use #G_GNUC_NO_INSTRUMENT on that function, it is needed.

</description>
<parameters>
<parameter name="func">
<parameter_description> the function to use
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> called when @user_data is not used anymore
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_category_free">
<description>
Removes and frees the category and all associated resources.

</description>
<parameters>
<parameter name="category">
<parameter_description> #GstDebugCategory to free.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_category_get_color">
<description>
Returns the color of a debug category used when printing output in this
category.


</description>
<parameters>
<parameter name="category">
<parameter_description> a #GstDebugCategory to get the color of.
</parameter_description>
</parameter>
</parameters>
<return> the color of the category.
</return>
</function>

<function name="gst_debug_category_get_description">
<description>
Returns the description of a debug category.


</description>
<parameters>
<parameter name="category">
<parameter_description> a #GstDebugCategory to get the description of.
</parameter_description>
</parameter>
</parameters>
<return> the description of the category.
</return>
</function>

<function name="gst_debug_category_get_name">
<description>
Returns the name of a debug category.


</description>
<parameters>
<parameter name="category">
<parameter_description> a #GstDebugCategory to get name of.
</parameter_description>
</parameter>
</parameters>
<return> the name of the category.
</return>
</function>

<function name="gst_debug_category_get_threshold">
<description>
Returns the threshold of a #GstDebugCategory.


</description>
<parameters>
<parameter name="category">
<parameter_description> a #GstDebugCategory to get threshold of.
</parameter_description>
</parameter>
</parameters>
<return> the #GstDebugLevel that is used as threshold.
</return>
</function>

<function name="gst_debug_category_reset_threshold">
<description>
Resets the threshold of the category to the default level. Debug information
will only be output if the threshold is lower or equal to the level of the
debugging message.
Use this function to set the threshold back to where it was after using
gst_debug_category_set_threshold().

</description>
<parameters>
<parameter name="category">
<parameter_description> a #GstDebugCategory to reset threshold of.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_category_set_threshold">
<description>
Sets the threshold of the category to the given level. Debug information will
only be output if the threshold is lower or equal to the level of the
debugging message.
&lt;note&gt;&lt;para&gt;
Do not use this function in production code, because other functions may
change the threshold of categories as side effect. It is however a nice
function to use when debugging (even from gdb).
&lt;/para&gt;&lt;/note&gt;

</description>
<parameters>
<parameter name="category">
<parameter_description> a #GstDebugCategory to set threshold of.
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> the #GstDebugLevel threshold to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_construct_term_color">
<description>
Constructs a string that can be used for getting the desired color in color
terminals.
You need to free the string after use.


</description>
<parameters>
<parameter name="colorinfo">
<parameter_description> the color info
</parameter_description>
</parameter>
</parameters>
<return> a string containing the color
definition
</return>
</function>

<function name="gst_debug_construct_win_color">
<description>
Constructs an integer that can be used for getting the desired color in
windows' terminals (cmd.exe). As there is no mean to underline, we simply
ignore this attribute.

This function returns 0 on non-windows machines.


</description>
<parameters>
<parameter name="colorinfo">
<parameter_description> the color info
</parameter_description>
</parameter>
</parameters>
<return> an integer containing the color definition
</return>
</function>

<function name="gst_debug_get_all_categories">
<description>
Returns a snapshot of a all categories that are currently in use . This list
may change anytime.
The caller has to free the list after use.


</description>
<parameters>
</parameters>
<return> the list of
debug categories
</return>
</function>

<function name="gst_debug_get_default_threshold">
<description>
Returns the default threshold that is used for new categories.


</description>
<parameters>
</parameters>
<return> the default threshold level
</return>
</function>

<function name="gst_debug_is_active">
<description>
Checks if debugging output is activated.


</description>
<parameters>
</parameters>
<return> TRUE, if debugging is activated
</return>
</function>

<function name="gst_debug_is_colored">
<description>
Checks if the debugging output should be colored.


</description>
<parameters>
</parameters>
<return> TRUE, if the debug output should be colored.
</return>
</function>

<function name="gst_debug_level_get_name">
<description>
Get the string representation of a debugging level


</description>
<parameters>
<parameter name="level">
<parameter_description> the level to get the name for
</parameter_description>
</parameter>
</parameters>
<return> the name
</return>
</function>

<function name="gst_debug_log">
<description>
Logs the given message using the currently registered debugging handlers.

</description>
<parameters>
<parameter name="category">
<parameter_description> category to log
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> level of the message is in
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the file that emitted the message, usually the __FILE__ identifier
</parameter_description>
</parameter>
<parameter name="function">
<parameter_description> the function that emitted the message
</parameter_description>
</parameter>
<parameter name="line">
<parameter_description> the line from that the message was emitted, usually __LINE__
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the object this message relates to,
or NULL if none
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> a printf style format string
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional arguments for the format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_log_default">
<description>
The default logging handler used by GStreamer. Logging functions get called
whenever a macro like GST_DEBUG or similar is used. This function outputs the
message and additional info to stderr (or the log file specified via the
GST_DEBUG_FILE environment variable).

You can add other handlers by using gst_debug_add_log_function().
And you can remove this handler by calling
gst_debug_remove_log_function(gst_debug_log_default);

</description>
<parameters>
<parameter name="category">
<parameter_description> category to log
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> level of the message
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the file that emitted the message, usually the __FILE__ identifier
</parameter_description>
</parameter>
<parameter name="function">
<parameter_description> the function that emitted the message
</parameter_description>
</parameter>
<parameter name="line">
<parameter_description> the line from that the message was emitted, usually __LINE__
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the actual message
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the object this message relates to,
or NULL if none
</parameter_description>
</parameter>
<parameter name="unused">
<parameter_description> an unused variable, reserved for some user_data.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_log_valist">
<description>
Logs the given message using the currently registered debugging handlers.

</description>
<parameters>
<parameter name="category">
<parameter_description> category to log
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> level of the message is in
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the file that emitted the message, usually the __FILE__ identifier
</parameter_description>
</parameter>
<parameter name="function">
<parameter_description> the function that emitted the message
</parameter_description>
</parameter>
<parameter name="line">
<parameter_description> the line from that the message was emitted, usually __LINE__
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the object this message relates to,
or NULL if none
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> a printf style format string
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> optional arguments for the format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_message_get">
<description>
Gets the string representation of a #GstDebugMessage. This function is used
in debug handlers to extract the message.


</description>
<parameters>
<parameter name="message">
<parameter_description> a debug message
</parameter_description>
</parameter>
</parameters>
<return> the string representation of a #GstDebugMessage.
</return>
</function>

<function name="gst_debug_print_stack_trace">
<description>
If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
gstreamer code, which can be printed with this function.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_debug_remove_log_function">
<description>
Removes all registered instances of the given logging functions.


</description>
<parameters>
<parameter name="func">
<parameter_description> the log function to remove
</parameter_description>
</parameter>
</parameters>
<return> How many instances of the function were removed
</return>
</function>

<function name="gst_debug_remove_log_function_by_data">
<description>
Removes all registered instances of log functions with the given user data.


</description>
<parameters>
<parameter name="data">
<parameter_description> user data of the log function to remove
</parameter_description>
</parameter>
</parameters>
<return> How many instances of the function were removed
</return>
</function>

<function name="gst_debug_set_active">
<description>
If activated, debugging messages are sent to the debugging
handlers.
It makes sense to deactivate it for speed issues.
&lt;note&gt;&lt;para&gt;This function is not threadsafe. It makes sense to only call it
during initialization.&lt;/para&gt;&lt;/note&gt;

</description>
<parameters>
<parameter name="active">
<parameter_description> Whether to use debugging output or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_set_colored">
<description>
Sets or unsets the use of coloured debugging output.

This function may be called before gst_init().

</description>
<parameters>
<parameter name="colored">
<parameter_description> Whether to use colored output or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_set_default_threshold">
<description>
Sets the default threshold to the given level and updates all categories to
use this threshold.

This function may be called before gst_init().

</description>
<parameters>
<parameter name="level">
<parameter_description> level to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_set_threshold_for_name">
<description>
Sets all categories which match the given glob style pattern to the given
level.

</description>
<parameters>
<parameter name="name">
<parameter_description> name of the categories to set
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> level to set them to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_set_threshold_from_string">
<description>
Sets the debug logging wanted in the same form as with the GST_DEBUG
environment variable. You can use wildcards such as '*', but note that
the order matters when you use wild cards, e.g. &quot;foosrc:6,*src:3,*:2&quot; sets
everything to log level 2.


</description>
<parameters>
<parameter name="list">
<parameter_description> comma-separated list of &quot;category:level&quot; pairs to be used
as debug logging levels
</parameter_description>
</parameter>
<parameter name="reset">
<parameter_description> %TRUE to clear all previously-set debug levels before setting
new thresholds
%FALSE if adding the threshold described by @list to the one already set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_debug_unset_threshold_for_name">
<description>
Resets all categories with the given name back to the default level.

</description>
<parameters>
<parameter name="name">
<parameter_description> name of the categories to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_deinit">
<description>
Clean up any resources created by GStreamer in gst_init().

It is normally not needed to call this function in a normal application
as the resources will automatically be freed when the program terminates.
This function is therefore mostly used by testsuites and other memory
profiling tools.

After this call GStreamer (including this method) should not be used anymore. 

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_direct_control_binding_new">
<description>
Create a new control-binding that attaches the #GstControlSource to the
#GObject property.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object of the property
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the property-name to attach the control source
</parameter_description>
</parameter>
<parameter name="cs">
<parameter_description> the control source
</parameter_description>
</parameter>
</parameters>
<return> the new #GstDirectControlBinding
</return>
</function>

<function name="gst_discoverer_audio_info_get_bitrate">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> the average or nominal bitrate of the stream in bits/second.
</return>
</function>

<function name="gst_discoverer_audio_info_get_channels">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> the number of channels in the stream.
</return>
</function>

<function name="gst_discoverer_audio_info_get_depth">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> the number of bits used per sample in each channel.
</return>
</function>

<function name="gst_discoverer_audio_info_get_language">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> the language of the stream, or NULL if unknown.
</return>
</function>

<function name="gst_discoverer_audio_info_get_max_bitrate">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> the maximum bitrate of the stream in bits/second.
</return>
</function>

<function name="gst_discoverer_audio_info_get_sample_rate">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererAudioInfo
</parameter_description>
</parameter>
</parameters>
<return> the sample rate of the stream in Hertz.
</return>
</function>

<function name="gst_discoverer_container_info_get_streams">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the list of
#GstDiscovererStreamInfo this container stream offers.
Free with gst_discoverer_stream_info_list_free() after usage.
</return>
</function>

<function name="gst_discoverer_discover_uri">
<description>
Synchronously discovers the given @uri.

A copy of @uri will be made internally, so the caller can safely g_free()
afterwards.


</description>
<parameters>
<parameter name="discoverer">
<parameter_description> A #GstDiscoverer
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> The URI to run on.
</parameter_description>
</parameter>
<parameter name="err">
<parameter_description> If an error occurred, this field will be filled in.
</parameter_description>
</parameter>
</parameters>
<return> the result of the scanning. Can be %NULL if an
error occurred.
</return>
</function>

<function name="gst_discoverer_discover_uri_async">
<description>
Appends the given @uri to the list of URIs to discoverer. The actual
discovery of the @uri will only take place if gst_discoverer_start() has
been called.

A copy of @uri will be made internally, so the caller can safely g_free()
afterwards.


</description>
<parameters>
<parameter name="discoverer">
<parameter_description> A #GstDiscoverer
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the URI to add.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @uri was successfully appended to the list of pending
uris, else %FALSE
</return>
</function>

<function name="gst_discoverer_info_copy">
<description>

</description>
<parameters>
<parameter name="ptr">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> A copy of the #GstDiscovererInfo
</return>
</function>

<function name="gst_discoverer_info_get_audio_streams">
<description>
Finds all the #GstDiscovererAudioInfo contained in @info


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> A #GList of
matching #GstDiscovererStreamInfo. The caller should free it with
gst_discoverer_stream_info_list_free().
</return>
</function>

<function name="gst_discoverer_info_get_container_streams">
<description>
Finds all the #GstDiscovererContainerInfo contained in @info


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> A #GList of
matching #GstDiscovererStreamInfo. The caller should free it with
gst_discoverer_stream_info_list_free().
</return>
</function>

<function name="gst_discoverer_info_get_duration">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> the duration of the URI in #GstClockTime (nanoseconds).
</return>
</function>

<function name="gst_discoverer_info_get_misc">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> Miscellaneous information stored as a #GstStructure
(for example: information about missing plugins). If you wish to use the
#GstStructure after the life-time of @info, you will need to copy it.
</return>
</function>

<function name="gst_discoverer_info_get_result">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> the result of the discovery as a #GstDiscovererResult.
</return>
</function>

<function name="gst_discoverer_info_get_seekable">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> the whether the URI is seekable.
</return>
</function>

<function name="gst_discoverer_info_get_stream_info">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> the structure (or topology) of the URI as a
#GstDiscovererStreamInfo.
This structure can be traversed to see the original hierarchy. Unref with
gst_discoverer_stream_info_unref() after usage.
</return>
</function>

<function name="gst_discoverer_info_get_stream_list">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> the list of
all streams contained in the #info. Free after usage
with gst_discoverer_stream_info_list_free().
</return>
</function>

<function name="gst_discoverer_info_get_streams">
<description>
Finds the #GstDiscovererStreamInfo contained in @info that match the
given @streamtype.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
<parameter name="streamtype">
<parameter_description> a #GType derived from #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> A #GList of
matching #GstDiscovererStreamInfo. The caller should free it with
gst_discoverer_stream_info_list_free().
</return>
</function>

<function name="gst_discoverer_info_get_subtitle_streams">
<description>
Finds all the #GstDiscovererSubtitleInfo contained in @info


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> A #GList of
matching #GstDiscovererStreamInfo. The caller should free it with
gst_discoverer_stream_info_list_free().
</return>
</function>

<function name="gst_discoverer_info_get_tags">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> all tags contained in the URI. If you wish to use
the tags after the life-time of @info, you will need to copy them.
</return>
</function>

<function name="gst_discoverer_info_get_toc">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> TOC contained in the URI. If you wish to use
the TOC after the life-time of @info, you will need to copy it.
</return>
</function>

<function name="gst_discoverer_info_get_uri">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> the URI to which this information corresponds to.
Copy it if you wish to use it after the life-time of @info.
</return>
</function>

<function name="gst_discoverer_info_get_video_streams">
<description>
Finds all the #GstDiscovererVideoInfo contained in @info


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> A #GList of
matching #GstDiscovererStreamInfo. The caller should free it with
gst_discoverer_stream_info_list_free().
</return>
</function>

<function name="gst_discoverer_info_ref">
<description>
Increments the reference count of @info.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return> the same #GstDiscovererInfo object
</return>
</function>

<function name="gst_discoverer_info_unref">
<description>
Decrements the reference count of @info.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_discoverer_new">
<description>
Creates a new #GstDiscoverer with the provided timeout.


</description>
<parameters>
<parameter name="timeout">
<parameter_description> timeout per file, in nanoseconds. Allowed are values between
one second (#GST_SECOND) and one hour (3600 * #GST_SECOND)
</parameter_description>
</parameter>
<parameter name="err">
<parameter_description> a pointer to a #GError. can be %NULL
</parameter_description>
</parameter>
</parameters>
<return> The new #GstDiscoverer.
If an error occurred when creating the discoverer, @err will be set
accordingly and %NULL will be returned. If @err is set, the caller must
free it when no longer needed using g_error_free().
</return>
</function>

<function name="gst_discoverer_start">
<description>
Allow asynchronous discovering of URIs to take place.
A #GMainLoop must be available for #GstDiscoverer to properly work in
asynchronous mode.

</description>
<parameters>
<parameter name="discoverer">
<parameter_description> A #GstDiscoverer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_discoverer_stop">
<description>
Stop the discovery of any pending URIs and clears the list of
pending URIS (if any).

</description>
<parameters>
<parameter name="discoverer">
<parameter_description> A #GstDiscoverer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_discoverer_stream_info_get_caps">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps of the stream. Unref with
#gst_caps_unref after usage.
</return>
</function>

<function name="gst_discoverer_stream_info_get_misc">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> additional information regarding the stream (for
example codec version, profile, etc..). If you wish to use the #GstStructure
after the life-time of @info you will need to copy it.
</return>
</function>

<function name="gst_discoverer_stream_info_get_next">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the next #GstDiscovererStreamInfo in a chain. %NULL
for final streams.
Unref with #gst_discoverer_stream_info_unref after usage.
</return>
</function>

<function name="gst_discoverer_stream_info_get_previous">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the previous #GstDiscovererStreamInfo in a chain.
%NULL for starting points. Unref with #gst_discoverer_stream_info_unref
after usage.
</return>
</function>

<function name="gst_discoverer_stream_info_get_stream_id">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the stream ID of this stream. If you wish to
use the stream ID after the life-time of @info you will need to copy it.
</return>
</function>

<function name="gst_discoverer_stream_info_get_stream_type_nick">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> a human readable name for the stream type of the given @info (ex : &quot;audio&quot;,
&quot;container&quot;,...).
</return>
</function>

<function name="gst_discoverer_stream_info_get_tags">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the tags contained in this stream. If you wish to
use the tags after the life-time of @info you will need to copy them.
</return>
</function>

<function name="gst_discoverer_stream_info_get_toc">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the TOC contained in this stream. If you wish to
use the TOC after the life-time of @info you will need to copy it.
</return>
</function>

<function name="gst_discoverer_stream_info_list_free">
<description>
Decrements the reference count of all contained #GstDiscovererStreamInfo
and fress the #GList.

</description>
<parameters>
<parameter name="infos">
<parameter_description> a #GList of #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_discoverer_stream_info_ref">
<description>
Increments the reference count of @info.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return> the same #GstDiscovererStreamInfo object
</return>
</function>

<function name="gst_discoverer_stream_info_unref">
<description>
Decrements the reference count of @info.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererStreamInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_discoverer_subtitle_info_get_language">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererSubtitleInfo
</parameter_description>
</parameter>
</parameters>
<return> the language of the stream, or NULL if unknown.
</return>
</function>

<function name="gst_discoverer_video_info_get_bitrate">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the average or nominal bitrate of the video stream in bits/second.
</return>
</function>

<function name="gst_discoverer_video_info_get_depth">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the depth in bits of the video stream.
</return>
</function>

<function name="gst_discoverer_video_info_get_framerate_denom">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the framerate of the video stream (denominator).
</return>
</function>

<function name="gst_discoverer_video_info_get_framerate_num">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the framerate of the video stream (numerator).
</return>
</function>

<function name="gst_discoverer_video_info_get_height">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the height of the video stream in pixels.
</return>
</function>

<function name="gst_discoverer_video_info_get_max_bitrate">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the maximum bitrate of the video stream in bits/second.
</return>
</function>

<function name="gst_discoverer_video_info_get_par_denom">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the Pixel Aspect Ratio (PAR) of the video stream (denominator).
</return>
</function>

<function name="gst_discoverer_video_info_get_par_num">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the Pixel Aspect Ratio (PAR) of the video stream (numerator).
</return>
</function>

<function name="gst_discoverer_video_info_get_width">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> the width of the video stream in pixels.
</return>
</function>

<function name="gst_discoverer_video_info_is_image">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the video stream corresponds to an image (i.e. only contains
one frame).
</return>
</function>

<function name="gst_discoverer_video_info_is_interlaced">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstDiscovererVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream is interlaced, else %FALSE.
</return>
</function>

<function name="gst_dmabuf_allocator_alloc">
<description>
Return a %GstMemory that wraps a dmabuf file descriptor.


</description>
<parameters>
<parameter name="allocator">
<parameter_description> allocator to be used for this memory
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> dmabuf file descriptor
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> memory size
</parameter_description>
</parameter>
</parameters>
<return> a GstMemory based on @allocator.
When the buffer will be released dmabuf allocator will close the @fd.
The memory is only mmapped on gst_buffer_mmap() request.

</return>
</function>

<function name="gst_dmabuf_allocator_obtain">
<description>
Return a dmabuf allocator.


</description>
<parameters>
</parameters>
<return> a dmabuf allocator, or NULL if the allocator
isn't available. Use gst_object_unref() to release the allocator after
usage

</return>
</function>

<function name="gst_dmabuf_memory_get_fd">
<description>
Return the file descriptor associated with @mem.


</description>
<parameters>
<parameter name="mem">
<parameter_description> the memory to get the file descriptor
</parameter_description>
</parameter>
</parameters>
<return> the file descriptor associated with the memory, or -1

</return>
</function>

<function name="gst_element_abort_state">
<description>
Abort the state change of the element. This function is used
by elements that do asynchronous state changes and find out
something is wrong.

This function should be called with the STATE_LOCK held.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to abort the state of.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_add_pad">
<description>
Adds a pad (link point) to @element. @pad's parent will be set to @element;
see gst_object_set_parent() for refcounting information.

Pads are not automatically activated so elements should perform the needed
steps to activate the pad in case this pad is added in the PAUSED or PLAYING
state. See gst_pad_set_active() for more information about activating pads.

The pad and the element should be unlocked when calling this function.

This function will emit the #GstElement::pad-added signal on the element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to add the pad to.
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the #GstPad to add to the element.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the pad could be added. This function can fail when
a pad with the same name already existed or the pad already had another
parent.

MT safe.
</return>
</function>

<function name="gst_element_change_state">
<description>
Perform @transition on @element.

This function must be called with STATE_LOCK held and is mainly used
internally.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement
</parameter_description>
</parameter>
<parameter name="transition">
<parameter_description> the requested transition
</parameter_description>
</parameter>
</parameters>
<return> the #GstStateChangeReturn of the state transition.
</return>
</function>

<function name="gst_element_class_add_metadata">
<description>
Set @key with @value as metadata in @klass.

</description>
<parameters>
<parameter name="klass">
<parameter_description> class to set metadata for
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> the key to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_class_add_pad_template">
<description>
Adds a padtemplate to an element class. This is mainly used in the _class_init
functions of classes. If a pad template with the same name as an already
existing one is added the old one is replaced by the new one.


</description>
<parameters>
<parameter name="klass">
<parameter_description> the #GstElementClass to add the pad template to.
</parameter_description>
</parameter>
<parameter name="templ">
<parameter_description> a #GstPadTemplate to add to the element class.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_class_add_static_metadata">
<description>
Set @key with @value as metadata in @klass.

Same as gst_element_class_add_metadata(), but @value must be a static string
or an inlined string, as it will not be copied. (GStreamer plugins will
be made resident once loaded, so this function can be used even from
dynamically loaded plugins.)

</description>
<parameters>
<parameter name="klass">
<parameter_description> class to set metadata for
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> the key to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_class_get_metadata">
<description>
Get metadata with @key in @klass.


</description>
<parameters>
<parameter name="klass">
<parameter_description> class to get metadata for
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> the key to get
</parameter_description>
</parameter>
</parameters>
<return> the metadata for @key.
</return>
</function>

<function name="gst_element_class_get_pad_template">
<description>
Retrieves a padtemplate from @element_class with the given name.
&lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
that has subclasses, make sure to pass the g_class parameter of the
#GInstanceInitFunc here.&lt;/note&gt;


</description>
<parameters>
<parameter name="element_class">
<parameter_description> a #GstElementClass to get the pad template of.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the #GstPadTemplate to get.
</parameter_description>
</parameter>
</parameters>
<return> the #GstPadTemplate with the given name, or %NULL
if none was found. No unreferencing is necessary.
</return>
</function>

<function name="gst_element_class_get_pad_template_list">
<description>
Retrieves a list of the pad templates associated with @element_class. The
list must not be modified by the calling code.
&lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
that has subclasses, make sure to pass the g_class parameter of the
#GInstanceInitFunc here.&lt;/note&gt;


</description>
<parameters>
<parameter name="element_class">
<parameter_description> a #GstElementClass to get pad templates of.
</parameter_description>
</parameter>
</parameters>
<return> the #GList of
pad templates.
</return>
</function>

<function name="gst_element_class_set_metadata">
<description>
Sets the detailed information for a #GstElementClass.
&lt;note&gt;This function is for use in _class_init functions only.&lt;/note&gt;

</description>
<parameters>
<parameter name="klass">
<parameter_description> class to set metadata for
</parameter_description>
</parameter>
<parameter name="longname">
<parameter_description> The long English name of the element. E.g. &quot;File Sink&quot;
</parameter_description>
</parameter>
<parameter name="classification">
<parameter_description> String describing the type of element, as an unordered list
separated with slashes ('/'). See draft-klass.txt of the design docs
for more details and common types. E.g: &quot;Sink/File&quot;
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> Sentence describing the purpose of the element.
E.g: &quot;Write stream to a file&quot;
</parameter_description>
</parameter>
<parameter name="author">
<parameter_description> Name and contact details of the author(s). Use \n to separate
multiple author metadata. E.g: &quot;Joe Bloggs &lt;joe.blogs at foo.com&gt;&quot;
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_class_set_static_metadata">
<description>
Sets the detailed information for a #GstElementClass.
&lt;note&gt;This function is for use in _class_init functions only.&lt;/note&gt;

Same as gst_element_class_set_metadata(), but @longname, @classification,
@description, and @author must be static strings or inlined strings, as
they will not be copied. (GStreamer plugins will be made resident once
loaded, so this function can be used even from dynamically loaded plugins.)

</description>
<parameters>
<parameter name="klass">
<parameter_description> class to set metadata for
</parameter_description>
</parameter>
<parameter name="longname">
<parameter_description> The long English name of the element. E.g. &quot;File Sink&quot;
</parameter_description>
</parameter>
<parameter name="classification">
<parameter_description> String describing the type of element, as an unordered list
separated with slashes ('/'). See draft-klass.txt of the design docs
for more details and common types. E.g: &quot;Sink/File&quot;
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> Sentence describing the purpose of the element.
E.g: &quot;Write stream to a file&quot;
</parameter_description>
</parameter>
<parameter name="author">
<parameter_description> Name and contact details of the author(s). Use \n to separate
multiple author metadata. E.g: &quot;Joe Bloggs &lt;joe.blogs at foo.com&gt;&quot;
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_continue_state">
<description>
Commit the state change of the element and proceed to the next
pending state if any. This function is used
by elements that do asynchronous state changes.
The core will normally call this method automatically when an
element returned %GST_STATE_CHANGE_SUCCESS from the state change function.

If after calling this method the element still has not reached
the pending state, the next state change is performed.

This method is used internally and should normally not be called by plugins
or applications.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to continue the state change of.
</parameter_description>
</parameter>
<parameter name="ret">
<parameter_description> The previous state return value
</parameter_description>
</parameter>
</parameters>
<return> The result of the commit state change.

MT safe.
</return>
</function>

<function name="gst_element_create_all_pads">
<description>
Creates a pad for each pad template that is always available.
This function is only useful during object initialization of
subclasses of #GstElement.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to create pads for
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_factory_can_sink_all_caps">
<description>
Checks if the factory can sink all possible capabilities.


</description>
<parameters>
<parameter name="factory">
<parameter_description> factory to query
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the caps to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the caps are fully compatible.
</return>
</function>

<function name="gst_element_factory_can_sink_any_caps">
<description>
Checks if the factory can sink any possible capability.


</description>
<parameters>
<parameter name="factory">
<parameter_description> factory to query
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the caps to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the caps have a common subset.
</return>
</function>

<function name="gst_element_factory_can_src_all_caps">
<description>
Checks if the factory can src all possible capabilities.


</description>
<parameters>
<parameter name="factory">
<parameter_description> factory to query
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the caps to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the caps are fully compatible.
</return>
</function>

<function name="gst_element_factory_can_src_any_caps">
<description>
Checks if the factory can src any possible capability.


</description>
<parameters>
<parameter name="factory">
<parameter_description> factory to query
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the caps to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the caps have a common subset.
</return>
</function>

<function name="gst_element_factory_create">
<description>
Create a new element of the type defined by the given elementfactory.
It will be given the name supplied, since all elements require a name as
their first argument.


</description>
<parameters>
<parameter name="factory">
<parameter_description> factory to instantiate
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of new element, or NULL to automatically create
a unique name
</parameter_description>
</parameter>
</parameters>
<return> new #GstElement or NULL if the element couldn't
be created
</return>
</function>

<function name="gst_element_factory_find">
<description>
Search for an element factory of the given name. Refs the returned
element factory; caller is responsible for unreffing.


</description>
<parameters>
<parameter name="name">
<parameter_description> name of factory to find
</parameter_description>
</parameter>
</parameters>
<return> #GstElementFactory if found, NULL otherwise
</return>
</function>

<function name="gst_element_factory_get_element_type">
<description>
Get the #GType for elements managed by this factory. The type can
only be retrieved if the element factory is loaded, which can be
assured with gst_plugin_feature_load().


</description>
<parameters>
<parameter name="factory">
<parameter_description> factory to get managed #GType from
</parameter_description>
</parameter>
</parameters>
<return> the #GType for elements managed by this factory or 0 if
the factory is not loaded.
</return>
</function>

<function name="gst_element_factory_get_metadata">
<description>
Get the metadata on @factory with @key.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return> the metadata with @key on @factory or %NULL when there was no
metadata with the given @key.
</return>
</function>

<function name="gst_element_factory_get_metadata_keys">
<description>
Get the available keys for the metadata on @factory.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
</parameters>
<return>
a %NULL-terminated array of key strings, or %NULL when there is no
metadata. Free with g_strfreev() when no longer needed.
</return>
</function>

<function name="gst_element_factory_get_num_pad_templates">
<description>
Gets the number of pad_templates in this factory.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
</parameters>
<return> the number of pad_templates
</return>
</function>

<function name="gst_element_factory_get_static_pad_templates">
<description>
Gets the #GList of #GstStaticPadTemplate for this factory.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
</parameters>
<return> the
static pad templates
</return>
</function>

<function name="gst_element_factory_get_uri_protocols">
<description>
Gets a NULL-terminated array of protocols this element supports or NULL if
no protocols are supported. You may not change the contents of the returned
array, as it is still owned by the element factory. Use g_strdupv() to
make a copy of the protocol string array if you need to.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
</parameters>
<return> the supported protocols
or NULL
</return>
</function>

<function name="gst_element_factory_get_uri_type">
<description>
Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
</parameters>
<return> type of URIs this element supports
</return>
</function>

<function name="gst_element_factory_has_interface">
<description>
Check if @factory implements the interface with name @interfacename.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
<parameter name="interfacename">
<parameter_description> an interface name
</parameter_description>
</parameter>
</parameters>
<return> #TRUE when @factory implement the interface.
</return>
</function>

<function name="gst_element_factory_list_filter">
<description>
Filter out all the elementfactories in @list that can handle @caps in
the given direction.

If @subsetonly is %TRUE, then only the elements whose pads templates
are a complete superset of @caps will be returned. Else any element
whose pad templates caps can intersect with @caps will be returned.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GList of
#GstElementFactory to filter
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> a #GstPadDirection to filter on
</parameter_description>
</parameter>
<parameter name="subsetonly">
<parameter_description> whether to filter on caps subsets or not.
</parameter_description>
</parameter>
</parameters>
<return> a #GList of
#GstElementFactory elements that match the given requisits.
Use #gst_plugin_feature_list_free after usage.
</return>
</function>

<function name="gst_element_factory_list_get_elements">
<description>
Get a list of factories that match the given @type. Only elements
with a rank greater or equal to @minrank will be returned.
The list of factories is returned by decreasing rank.


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GstElementFactoryListType
</parameter_description>
</parameter>
<parameter name="minrank">
<parameter_description> Minimum rank
</parameter_description>
</parameter>
</parameters>
<return> a #GList of
#GstElementFactory elements. Use gst_plugin_feature_list_free() after
usage.
</return>
</function>

<function name="gst_element_factory_list_is_type">
<description>
Check if @factory is of the given types.


</description>
<parameters>
<parameter name="factory">
<parameter_description> a #GstElementFactory
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GstElementFactoryListType
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @factory is of @type.
</return>
</function>

<function name="gst_element_factory_make">
<description>
Create a new element of the type defined by the given element factory.
If name is NULL, then the element will receive a guaranteed unique name,
consisting of the element factory name and a number.
If name is given, it will be given the name supplied.


</description>
<parameters>
<parameter name="factoryname">
<parameter_description> a named factory to instantiate
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of new element, or NULL to automatically create
a unique name
</parameter_description>
</parameter>
</parameters>
<return> new #GstElement or NULL if unable to create element
</return>
</function>

<function name="gst_element_get_base_time">
<description>
Returns the base time of the element. The base time is the
absolute time of the clock when this element was last put to
PLAYING. Subtracting the base time from the clock time gives
the running time of the element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
</parameters>
<return> the base time of the element.

MT safe.
</return>
</function>

<function name="gst_element_get_bus">
<description>
Returns the bus of the element. Note that only a #GstPipeline will provide a
bus for the application.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to get the bus of.
</parameter_description>
</parameter>
</parameters>
<return> the element's #GstBus. unref after usage.

MT safe.
</return>
</function>

<function name="gst_element_get_clock">
<description>
Gets the currently configured clock of the element. This is the clock as was
last set with gst_element_set_clock().


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to get the clock of.
</parameter_description>
</parameter>
</parameters>
<return> the #GstClock of the element. unref after usage.

MT safe.
</return>
</function>

<function name="gst_element_get_compatible_pad">
<description>
Looks for an unlinked pad to which the given pad can link. It is not
guaranteed that linking the pads will work, though it should work in most
cases.

This function will first attempt to find a compatible unlinked ALWAYS pad,
and if none can be found, it will request a compatible REQUEST pad by looking
at the templates of @element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement in which the pad should be found.
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the #GstPad to find a compatible one for.
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the #GstCaps to use as a filter.
</parameter_description>
</parameter>
</parameters>
<return> the #GstPad to which a link can be made, or %NULL
if one cannot be found. gst_object_unref() after usage.
</return>
</function>

<function name="gst_element_get_compatible_pad_template">
<description>
Retrieves a pad template from @element that is compatible with @compattempl.
Pads from compatible templates can be linked together.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to get a compatible pad template for
</parameter_description>
</parameter>
<parameter name="compattempl">
<parameter_description> the #GstPadTemplate to find a compatible
template for
</parameter_description>
</parameter>
</parameters>
<return> a compatible #GstPadTemplate, or NULL if none
was found. No unreferencing is necessary.
</return>
</function>

<function name="gst_element_get_context">
<description>
Gets the current context of the element.

MT safe.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to get the context from.
</parameter_description>
</parameter>
</parameters>
<return> The current context of the element
</return>
</function>

<function name="gst_element_get_factory">
<description>
Retrieves the factory that was used to create this element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to request the element factory of.
</parameter_description>
</parameter>
</parameters>
<return> the #GstElementFactory used for creating this
element. no refcounting is needed.
</return>
</function>

<function name="gst_element_get_index">
<description>
Gets the index from the element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
</parameters>
<return> a #GstIndex or %NULL when no index was set on the
element. unref after usage.

MT safe.
</return>
</function>

<function name="gst_element_get_name">
<description>
Returns a copy of the name of @elem.
Caller should g_free() the return value after usage.
For a nameless element, this returns NULL, which you can safely g_free()
as well.


</description>
<parameters>
<parameter name="elem">
<parameter_description> a #GstElement to get the name of @elem.
</parameter_description>
</parameter>
</parameters>
<return> the name of @elem. g_free() after usage. MT safe.

</return>
</function>

<function name="gst_element_get_pad_from_template">
<description>
Gets a pad from @element described by @templ. If the presence of @templ is
#GST_PAD_REQUEST, requests a new pad. Can return %NULL for #GST_PAD_SOMETIMES
templates.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
<parameter name="templ">
<parameter_description> a #GstPadTemplate belonging to @element.
</parameter_description>
</parameter>
</parameters>
<return> the #GstPad, or NULL if one could not be found
or created.
</return>
</function>

<function name="gst_element_get_parent">
<description>
Get the parent of an element.


</description>
<parameters>
<parameter name="elem">
<parameter_description> a #GstElement to get the parent of.
</parameter_description>
</parameter>
</parameters>
<return> the parent of an element.
</return>
</function>

<function name="gst_element_get_request_pad">
<description>
Retrieves a pad from the element by name (e.g. &quot;src_\%d&quot;). This version only
retrieves request pads. The pad should be released with
gst_element_release_request_pad().

This method is slow and will be deprecated in the future. New code should
use gst_element_request_pad() with the requested template.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to find a request pad of.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the request #GstPad to retrieve.
</parameter_description>
</parameter>
</parameters>
<return> requested #GstPad if found, otherwise %NULL.
Release after usage.
</return>
</function>

<function name="gst_element_get_start_time">
<description>
Returns the start time of the element. The start time is the
running time of the clock when this element was last put to PAUSED.

Usually the start_time is managed by a toplevel element such as
#GstPipeline.

MT safe.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
</parameters>
<return> the start time of the element.
</return>
</function>

<function name="gst_element_get_state">
<description>
Gets the state of the element.

For elements that performed an ASYNC state change, as reported by
gst_element_set_state(), this function will block up to the
specified timeout value for the state change to complete.
If the element completes the state change or goes into
an error, this function returns immediately with a return value of
%GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.

For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
returns the current and pending state immediately.

This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
successfully changed its state but is not able to provide data yet.
This mostly happens for live sources that only produce data in
%GST_STATE_PLAYING. While the state change return is equivalent to
%GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
some sink elements might not be able to complete their state change because
an element is not producing data to complete the preroll. When setting the
element to playing, the preroll will complete and playback will start.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to get the state of.
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> a pointer to #GstState to hold the state.
Can be %NULL.
</parameter_description>
</parameter>
<parameter name="pending">
<parameter_description> a pointer to #GstState to hold the pending
state. Can be %NULL.
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a #GstClockTime to specify the timeout for an async
state change or %GST_CLOCK_TIME_NONE for infinite timeout.
</parameter_description>
</parameter>
</parameters>
<return> %GST_STATE_CHANGE_SUCCESS if the element has no more pending state
and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
element is still performing a state change or
%GST_STATE_CHANGE_FAILURE if the last state change failed.

MT safe.
</return>
</function>

<function name="gst_element_get_static_pad">
<description>
Retrieves a pad from @element by name. This version only retrieves
already-existing (i.e. 'static') pads.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to find a static pad of.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the static #GstPad to retrieve.
</parameter_description>
</parameter>
</parameters>
<return> the requested #GstPad if found, otherwise %NULL.
unref after usage.

MT safe.
</return>
</function>

<function name="gst_element_is_locked_state">
<description>
Checks if the state of an element is locked.
If the state of an element is locked, state changes of the parent don't
affect the element.
This way you can leave currently unused elements inside bins. Just lock their
state before changing the state from #GST_STATE_NULL.

MT safe.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if the element's state is locked.
</return>
</function>

<function name="gst_element_iterate_pads">
<description>
Retrieves an iterator of @element's pads. The iterator should
be freed after usage. Also more specialized iterators exists such as
gst_element_iterate_src_pads() or gst_element_iterate_sink_pads().

The order of pads returned by the iterator will be the order in which
the pads were added to the element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to iterate pads of.
</parameter_description>
</parameter>
</parameters>
<return> the #GstIterator of #GstPad.

MT safe.
</return>
</function>

<function name="gst_element_iterate_sink_pads">
<description>
Retrieves an iterator of @element's sink pads.

The order of pads returned by the iterator will be the order in which
the pads were added to the element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
</parameters>
<return> the #GstIterator of #GstPad.

MT safe.
</return>
</function>

<function name="gst_element_iterate_src_pads">
<description>
Retrieves an iterator of @element's source pads.

The order of pads returned by the iterator will be the order in which
the pads were added to the element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
</parameters>
<return> the #GstIterator of #GstPad.

MT safe.
</return>
</function>

<function name="gst_element_link">
<description>
Links @src to @dest. The link must be from source to
destination; the other direction will not be tried. The function looks for
existing pads that aren't linked yet. It will request new pads if necessary.
Such pads need to be released manually when unlinking.
If multiple links are possible, only one is established.

Make sure you have added your elements to a bin or pipeline with
gst_bin_add() before trying to link them.


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstElement containing the source pad.
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> the #GstElement containing the destination pad.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the elements could be linked, FALSE otherwise.
</return>
</function>

<function name="gst_element_link_filtered">
<description>
Links @src to @dest using the given caps as filtercaps.
The link must be from source to
destination; the other direction will not be tried. The function looks for
existing pads that aren't linked yet. It will request new pads if necessary.
If multiple links are possible, only one is established.

Make sure you have added your elements to a bin or pipeline with
gst_bin_add() before trying to link them.


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstElement containing the source pad.
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> the #GstElement containing the destination pad.
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the #GstCaps to filter the link,
or #NULL for no filter.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pads could be linked, FALSE otherwise.
</return>
</function>

<function name="gst_element_link_many">
<description>
Chain together a series of elements. Uses gst_element_link().
Make sure you have added your elements to a bin or pipeline with
gst_bin_add() before trying to link them.


</description>
<parameters>
<parameter name="element_1">
<parameter_description> the first #GstElement in the link chain.
</parameter_description>
</parameter>
<parameter name="element_2">
<parameter_description> the second #GstElement in the link chain.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the NULL-terminated list of elements to link in order.
</parameter_description>
</parameter>
</parameters>
<return> TRUE on success, FALSE otherwise.
</return>
</function>

<function name="gst_element_link_pads">
<description>
Links the two named pads of the source and destination elements.
Side effect is that if one of the pads has no parent, it becomes a
child of the parent of the other element.  If they have different
parents, the link fails.


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstElement containing the source pad.
</parameter_description>
</parameter>
<parameter name="srcpadname">
<parameter_description> the name of the #GstPad in source element
or NULL for any pad.
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> the #GstElement containing the destination pad.
</parameter_description>
</parameter>
<parameter name="destpadname">
<parameter_description> the name of the #GstPad in destination element,
or NULL for any pad.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pads could be linked, FALSE otherwise.
</return>
</function>

<function name="gst_element_link_pads_filtered">
<description>
Links the two named pads of the source and destination elements. Side effect
is that if one of the pads has no parent, it becomes a child of the parent of
the other element. If they have different parents, the link fails. If @caps
is not #NULL, makes sure that the caps of the link is a subset of @caps.


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstElement containing the source pad.
</parameter_description>
</parameter>
<parameter name="srcpadname">
<parameter_description> the name of the #GstPad in source element
or NULL for any pad.
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> the #GstElement containing the destination pad.
</parameter_description>
</parameter>
<parameter name="destpadname">
<parameter_description> the name of the #GstPad in destination element
or NULL for any pad.
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the #GstCaps to filter the link,
or #NULL for no filter.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pads could be linked, FALSE otherwise.
</return>
</function>

<function name="gst_element_link_pads_full">
<description>
Links the two named pads of the source and destination elements.
Side effect is that if one of the pads has no parent, it becomes a
child of the parent of the other element.  If they have different
parents, the link fails.

Calling gst_element_link_pads_full() with @flags == %GST_PAD_LINK_CHECK_DEFAULT
is the same as calling gst_element_link_pads() and the recommended way of
linking pads with safety checks applied.

This is a convenience function for gst_pad_link_full().


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstElement containing the source pad.
</parameter_description>
</parameter>
<parameter name="srcpadname">
<parameter_description> the name of the #GstPad in source element
or NULL for any pad.
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> the #GstElement containing the destination pad.
</parameter_description>
</parameter>
<parameter name="destpadname">
<parameter_description> the name of the #GstPad in destination element,
or NULL for any pad.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the #GstPadLinkCheck to be performed when linking pads.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pads could be linked, FALSE otherwise.
</return>
</function>

<function name="gst_element_lost_state">
<description>
Brings the element to the lost state. The current state of the
element is copied to the pending state so that any call to
gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.

An ASYNC_START message is posted. If the element was PLAYING, it will
go to PAUSED. The element will be restored to its PLAYING state by
the parent pipeline when it prerolls again.

This is mostly used for elements that lost their preroll buffer
in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
they will go to their pending state again when a new preroll buffer is
queued. This function can only be called when the element is currently
not in error or an async state change.

This function is used internally and should normally not be called from
plugins or applications.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement the state is lost of
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_make_from_uri">
<description>
Creates an element for handling the given URI.


</description>
<parameters>
<parameter name="type">
<parameter_description> Whether to create a source or a sink
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> URI to create an element for
</parameter_description>
</parameter>
<parameter name="elementname">
<parameter_description> Name of created element, can be NULL.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> address where to store error information, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new element or NULL if none could be created
</return>
</function>

<function name="gst_element_message_full">
<description>
Post an error, warning or info message on the bus from inside an element.

@type must be of #GST_MESSAGE_ERROR, #GST_MESSAGE_WARNING or
#GST_MESSAGE_INFO.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description>  a #GstElement to send message from
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description>     the #GstMessageType
</parameter_description>
</parameter>
<parameter name="domain">
<parameter_description>   the GStreamer GError domain this message belongs to
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description>     the GError code belonging to the domain
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> an allocated text string to be used
as a replacement for the default message connected to code,
or %NULL
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> an allocated debug message to be
used as a replacement for the default debugging information,
or %NULL
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description>     the source code file where the error was generated
</parameter_description>
</parameter>
<parameter name="function">
<parameter_description> the source code function where the error was generated
</parameter_description>
</parameter>
<parameter name="line">
<parameter_description>     the source code line where the error was generated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_no_more_pads">
<description>
Use this function to signal that the element does not expect any more pads
to show up in the current pipeline. This function should be called whenever
pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
pad templates use this in combination with autopluggers to figure out that
the element is done initializing its pads.

This function emits the #GstElement::no-more-pads signal.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_post_message">
<description>
Post a message on the element's #GstBus. This function takes ownership of the
message; if you want to access the message after this call, you should add an
additional reference before calling.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement posting the message
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> a #GstMessage to post
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the message was successfully posted. The function returns
%FALSE if the element did not have a bus.

MT safe.
</return>
</function>

<function name="gst_element_provide_clock">
<description>
Get the clock provided by the given element.
&lt;note&gt;An element is only required to provide a clock in the PAUSED
state. Some elements can provide a clock in other states.&lt;/note&gt;


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to query
</parameter_description>
</parameter>
</parameters>
<return> the GstClock provided by the element or %NULL
if no clock could be provided.  Unref after usage.

MT safe.
</return>
</function>

<function name="gst_element_query">
<description>
Performs a query on the given element.

For elements that don't implement a query handler, this function
forwards the query to a random srcpad or to the peer of a
random linked sinkpad of this element.

Please note that some queries might need a running pipeline to work.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to perform the query on.
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> the #GstQuery.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.

MT safe.
</return>
</function>

<function name="gst_element_query_convert">
<description>
Queries an element to convert @src_val in @src_format to @dest_format.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to invoke the convert query on.
</parameter_description>
</parameter>
<parameter name="src_format">
<parameter_description> a #GstFormat to convert from.
</parameter_description>
</parameter>
<parameter name="src_val">
<parameter_description> a value to convert.
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> the #GstFormat to convert to.
</parameter_description>
</parameter>
<parameter name="dest_val">
<parameter_description> a pointer to the result.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_element_query_duration">
<description>
Queries an element for the total stream duration.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to invoke the duration query on.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat requested
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> A location in which to store the total duration, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_element_query_position">
<description>
Queries an element for the stream position. If one repeatedly calls this
function one can also create and reuse it in gst_element_query().


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to invoke the position query on.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat requested
</parameter_description>
</parameter>
<parameter name="cur">
<parameter_description> a location in which to store the current
position, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_element_register">
<description>
Create a new elementfactory capable of instantiating objects of the
@type and add the factory to @plugin.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> #GstPlugin to register the element with, or NULL for
a static element.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of elements of this type
</parameter_description>
</parameter>
<parameter name="rank">
<parameter_description> rank of element (higher rank means more importance when autoplugging)
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> GType of element to register
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if the registering succeeded, FALSE on error
</return>
</function>

<function name="gst_element_release_request_pad">
<description>
Makes the element free the previously requested pad as obtained
with gst_element_get_request_pad().

This does not unref the pad. If the pad was created by using
gst_element_get_request_pad(), gst_element_release_request_pad() needs to be
followed by gst_object_unref() to free the @pad.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to release the request pad of.
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the #GstPad to release.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_remove_pad">
<description>
Removes @pad from @element. @pad will be destroyed if it has not been
referenced elsewhere using gst_object_unparent().

This function is used by plugin developers and should not be used
by applications. Pads that were dynamically requested from elements
with gst_element_get_request_pad() should be released with the
gst_element_release_request_pad() function instead.

Pads are not automatically deactivated so elements should perform the needed
steps to deactivate the pad in case this pad is removed in the PAUSED or
PLAYING state. See gst_pad_set_active() for more information about
deactivating pads.

The pad and the element should be unlocked when calling this function.

This function will emit the #GstElement::pad-removed signal on the element.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to remove pad from.
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> the #GstPad to remove from the element.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the pad could be removed. Can return %FALSE if the
pad does not belong to the provided element.

MT safe.
</return>
</function>

<function name="gst_element_request_pad">
<description>
Retrieves a request pad from the element according to the provided template.
Pad templates can be looked up using
gst_element_factory_get_static_pad_templates().

The pad should be released with gst_element_release_request_pad().


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to find a request pad of.
</parameter_description>
</parameter>
<parameter name="templ">
<parameter_description> a #GstPadTemplate of which we want a pad of.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the request #GstPad
to retrieve. Can be %NULL.
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the caps of the pad we want to
request. Can be %NULL.
</parameter_description>
</parameter>
</parameters>
<return> requested #GstPad if found, otherwise %NULL.
Release after usage.
</return>
</function>

<function name="gst_element_seek">
<description>
Sends a seek event to an element. See gst_event_new_seek() for the details of
the parameters. The seek event is sent to the element using
gst_element_send_event().

MT safe.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to send the event to.
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> The new playback rate
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The format of the seek values
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> The optional seek flags.
</parameter_description>
</parameter>
<parameter name="start_type">
<parameter_description> The type and flags for the new start position
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> The value of the new start position
</parameter_description>
</parameter>
<parameter name="stop_type">
<parameter_description> The type and flags for the new stop position
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> The value of the new stop position
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event was handled. Flushing seeks will trigger a
preroll, which will emit %GST_MESSAGE_ASYNC_DONE.
</return>
</function>

<function name="gst_element_seek_simple">
<description>
Simple API to perform a seek on the given element, meaning it just seeks
to the given position relative to the start of the stream. For more complex
operations like segment seeks (e.g. for looping) or changing the playback
rate or seeking relative to the last configured playback segment you should
use gst_element_seek().

In a completely prerolled PAUSED or PLAYING pipeline, seeking is always
guaranteed to return %TRUE on a seekable media type or %FALSE when the media
type is certainly not seekable (such as a live stream).

Some elements allow for seeking in the READY state, in this
case they will store the seek event and execute it when they are put to
PAUSED. If the element supports seek in READY, it will always return %TRUE when
it receives the event in the READY state.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to seek on
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> a #GstFormat to execute the seek in, such as #GST_FORMAT_TIME
</parameter_description>
</parameter>
<parameter name="seek_flags">
<parameter_description> seek options; playback applications will usually want to use
GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT here
</parameter_description>
</parameter>
<parameter name="seek_pos">
<parameter_description> position to seek to (relative to the start); if you are doing
a seek in #GST_FORMAT_TIME this value is in nanoseconds -
multiply with #GST_SECOND to convert seconds to nanoseconds or
with #GST_MSECOND to convert milliseconds to nanoseconds.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the seek operation succeeded. Flushing seeks will trigger a
preroll, which will emit %GST_MESSAGE_ASYNC_DONE.
</return>
</function>

<function name="gst_element_send_event">
<description>
Sends an event to an element. If the element doesn't implement an
event handler, the event will be pushed on a random linked sink pad for
upstream events or a random linked source pad for downstream events.

This function takes owership of the provided event so you should
gst_event_ref() it if you want to reuse the event after this call.

MT safe.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to send the event to.
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the #GstEvent to send to the element.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event was handled. Events that trigger a preroll (such
as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.
</return>
</function>

<function name="gst_element_set_base_time">
<description>
Set the base time of an element. See gst_element_get_base_time().

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the base time to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_set_bus">
<description>
Sets the bus of the element. Increases the refcount on the bus.
For internal use only, unless you're testing elements.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to set the bus of.
</parameter_description>
</parameter>
<parameter name="bus">
<parameter_description> the #GstBus to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_set_clock">
<description>
Sets the clock for the element. This function increases the
refcount on the clock. Any previously set clock on the object
is unreffed.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to set the clock for.
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> the #GstClock to set for the element.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the element accepted the clock. An element can refuse a
clock when it, for example, is not able to slave its internal clock to the
@clock or when it requires a specific clock to operate.

MT safe.
</return>
</function>

<function name="gst_element_set_context">
<description>
Sets the context of the element. Increases the refcount of the context.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to set the context of.
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the #GstContext to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_set_index">
<description>
Set @index on the element. The refcount of the index
will be increased, any previously set index is unreffed.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> a #GstIndex.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_set_locked_state">
<description>
Locks the state of an element, so state changes of the parent don't affect
this element anymore.

MT safe.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement
</parameter_description>
</parameter>
<parameter name="locked_state">
<parameter_description> TRUE to lock the element's state
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the state was changed, FALSE if bad parameters were given
or the elements state-locking needed no change.
</return>
</function>

<function name="gst_element_set_name">
<description>
Sets the name of the element, getting rid of the old name if there was one.

</description>
<parameters>
<parameter name="elem">
<parameter_description> a #GstElement to set the name of.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the new name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_set_parent">
<description>
Sets the parent of an element.

</description>
<parameters>
<parameter name="elem">
<parameter_description> a #GstElement to set the parent of.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the new parent #GstObject of the element.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_set_start_time">
<description>
Set the start time of an element. The start time of the element is the
running time of the element when it last went to the PAUSED state. In READY
or after a flushing seek, it is set to 0.

Toplevel elements like #GstPipeline will manage the start_time and
base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
on such a toplevel element will disable the distribution of the base_time to
the children and can be useful if the application manages the base_time
itself, for example if you want to synchronize capture from multiple
pipelines, and you can also ensure that the pipelines have the same clock.

MT safe.

</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the base time to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_set_state">
<description>
Sets the state of the element. This function will try to set the
requested state by going through all the intermediary states and calling
the class's state change function for each.

This function can return #GST_STATE_CHANGE_ASYNC, in which case the
element will perform the remainder of the state change asynchronously in
another thread.
An application can use gst_element_get_state() to wait for the completion
of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or
%GST_MESSAGE_STATE_CHANGED on the bus.

State changes to %GST_STATE_READY or %GST_STATE_NULL never return
#GST_STATE_CHANGE_ASYNC.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement to change state of.
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the element's new #GstState.
</parameter_description>
</parameter>
</parameters>
<return> Result of the state change using #GstStateChangeReturn.

MT safe.
</return>
</function>

<function name="gst_element_state_change_return_get_name">
<description>
Gets a string representing the given state change result.


</description>
<parameters>
<parameter name="state_ret">
<parameter_description> a #GstStateChangeReturn to get the name of.
</parameter_description>
</parameter>
</parameters>
<return> a string with the name of the state
result.
</return>
</function>

<function name="gst_element_state_get_name">
<description>
Gets a string representing the given state.


</description>
<parameters>
<parameter name="state">
<parameter_description> a #GstState to get the name of.
</parameter_description>
</parameter>
</parameters>
<return> a string with the name of the state.
</return>
</function>

<function name="gst_element_sync_state_with_parent">
<description>
Tries to change the state of the element to the same as its parent.
If this function returns FALSE, the state of element is undefined.


</description>
<parameters>
<parameter name="element">
<parameter_description> a #GstElement.
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if the element's state could be synced to the parent's state.

MT safe.
</return>
</function>

<function name="gst_element_unlink">
<description>
Unlinks all source pads of the source element with all sink pads
of the sink element to which they are linked.

If the link has been made using gst_element_link(), it could have created an
requestpad, which has to be released using gst_element_release_request_pad().

</description>
<parameters>
<parameter name="src">
<parameter_description> the source #GstElement to unlink.
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> the sink #GstElement to unlink.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_unlink_many">
<description>
Unlinks a series of elements. Uses gst_element_unlink().

</description>
<parameters>
<parameter name="element_1">
<parameter_description> the first #GstElement in the link chain.
</parameter_description>
</parameter>
<parameter name="element_2">
<parameter_description> the second #GstElement in the link chain.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the NULL-terminated list of elements to unlink in order.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_element_unlink_pads">
<description>
Unlinks the two named pads of the source and destination elements.

This is a convenience function for gst_pad_unlink().

</description>
<parameters>
<parameter name="src">
<parameter_description> a (transfer none): #GstElement containing the source pad.
</parameter_description>
</parameter>
<parameter name="srcpadname">
<parameter_description> the name of the #GstPad in source element.
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> a #GstElement containing the destination pad.
</parameter_description>
</parameter>
<parameter name="destpadname">
<parameter_description> the name of the #GstPad in destination element.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_audio_profile_new">
<description>
Creates a new #GstEncodingAudioProfile

All provided allocatable arguments will be internally copied, so can be
safely freed/unreferenced after calling this method.


</description>
<parameters>
<parameter name="format">
<parameter_description> the #GstCaps
</parameter_description>
</parameter>
<parameter name="preset">
<parameter_description> the preset(s) to use on the encoder, can be #NULL
</parameter_description>
</parameter>
<parameter name="restriction">
<parameter_description> the #GstCaps used to restrict the input to the encoder, can be
NULL. See gst_encoding_profile_get_restriction() for more details.
</parameter_description>
</parameter>
<parameter name="presence">
<parameter_description> the number of time this stream must be used. 0 means any number of
times (including never)
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstEncodingAudioProfile.
</return>
</function>

<function name="gst_encoding_container_profile_add_profile">
<description>
Add a #GstEncodingProfile to the list of profiles handled by @container.

No copy of @profile will be made, if you wish to use it elsewhere after this
method you should increment its reference count.


</description>
<parameters>
<parameter name="container">
<parameter_description> the #GstEncodingContainerProfile to use
</parameter_description>
</parameter>
<parameter name="profile">
<parameter_description> the #GstEncodingProfile to add.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @stream was properly added, else %FALSE.
</return>
</function>

<function name="gst_encoding_container_profile_contains_profile">
<description>
Checks if @container contains a #GstEncodingProfile identical to
@profile.


</description>
<parameters>
<parameter name="container">
<parameter_description> a #GstEncodingContainerProfile
</parameter_description>
</parameter>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @container contains a #GstEncodingProfile identical
to @profile, else %FALSE.
</return>
</function>

<function name="gst_encoding_container_profile_get_profiles">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingContainerProfile
</parameter_description>
</parameter>
</parameters>
<return>
the list of contained #GstEncodingProfile.
</return>
</function>

<function name="gst_encoding_container_profile_new">
<description>
Creates a new #GstEncodingContainerProfile.


</description>
<parameters>
<parameter name="name">
<parameter_description> The name of the container profile, can be %NULL
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> The description of the container profile,
can be %NULL
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The format to use for this profile
</parameter_description>
</parameter>
<parameter name="preset">
<parameter_description> The preset to use for this profile.
</parameter_description>
</parameter>
</parameters>
<return> The newly created #GstEncodingContainerProfile.
</return>
</function>

<function name="gst_encoding_list_all_targets">
<description>
List all available #GstEncodingTarget for the specified category, or all categories
if @categoryname is %NULL.


</description>
<parameters>
<parameter name="categoryname">
<parameter_description> The category, for ex: #GST_ENCODING_CATEGORY_DEVICE.
Can be %NULL.
</parameter_description>
</parameter>
</parameters>
<return> The list of #GstEncodingTarget
</return>
</function>

<function name="gst_encoding_list_available_categories">
<description>
Lists all #GstEncodingTarget categories present on disk.


</description>
<parameters>
</parameters>
<return> A list
of #GstEncodingTarget categories.
</return>
</function>

<function name="gst_encoding_profile_find">
<description>
Find the #GstEncodingProfile with the specified name and category.


</description>
<parameters>
<parameter name="targetname">
<parameter_description> The name of the target
</parameter_description>
</parameter>
<parameter name="profilename">
<parameter_description> The name of the profile
</parameter_description>
</parameter>
<parameter name="category">
<parameter_description> The target category. Can be %NULL
</parameter_description>
</parameter>
</parameters>
<return> The matching #GstEncodingProfile or %NULL.
</return>
</function>

<function name="gst_encoding_profile_from_discoverer">
<description>
Creates a #GstEncodingProfile matching the formats from the given
#GstEncodingProfile. Streams other than audio or video (eg,
subtitles), are currently ignored.


</description>
<parameters>
<parameter name="info">
<parameter_description> The #GstDiscovererInfo to read from
</parameter_description>
</parameter>
</parameters>
<return> The new #GstEncodingProfile or %NULL.
</return>
</function>

<function name="gst_encoding_profile_get_description">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> the description of the profile, can be %NULL.
</return>
</function>

<function name="gst_encoding_profile_get_file_extension">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> a suitable file extension for @profile, or NULL.
</return>
</function>

<function name="gst_encoding_profile_get_format">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps corresponding to the media format used
in the profile. Unref after usage.
</return>
</function>

<function name="gst_encoding_profile_get_input_caps">
<description>
Computes the full output caps that this @profile will be able to consume.


</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> The full caps the given @profile can consume. Call
gst_caps_unref() when you are done with the caps.
</return>
</function>

<function name="gst_encoding_profile_get_name">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> the name of the profile, can be %NULL.
</return>
</function>

<function name="gst_encoding_profile_get_presence">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> The number of times the profile is used in its parent
container profile. If 0, it is not a mandatory stream.
</return>
</function>

<function name="gst_encoding_profile_get_preset">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> the name of the #GstPreset to be used in the profile.
This is the name that has been set when saving the preset.
</return>
</function>

<function name="gst_encoding_profile_get_preset_name">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> the name of the #GstPreset factory to be used in the profile.
</return>
</function>

<function name="gst_encoding_profile_get_restriction">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> The restriction #GstCaps to apply before the encoder
that will be used in the profile. The fields present in restriction caps are
properties of the raw stream (that is before encoding), such as height and
width for video and depth and sampling rate for audio. Does not apply to
#GstEncodingContainerProfile (since there is no corresponding raw stream).
Can be %NULL. Unref after usage.
</return>
</function>

<function name="gst_encoding_profile_get_type_nick">
<description>

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> the human-readable name of the type of @profile.
</return>
</function>

<function name="gst_encoding_profile_is_equal">
<description>
Checks whether the two #GstEncodingProfile are equal


</description>
<parameters>
<parameter name="a">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @a and @b are equal, else %FALSE.
</return>
</function>

<function name="gst_encoding_profile_ref">
<description>
Increases the reference count of the @profile.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_set_description">
<description>
Set @description as the given description for the @profile. A copy of
@description will be made internally.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> the description to set on the profile
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_set_format">
<description>
Sets the media format used in the profile.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the media format to use in the profile.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_set_name">
<description>
Set @name as the given name for the @profile. A copy of @name will be made
internally.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name to set on the profile
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_set_presence">
<description>
Set the number of time the profile is used in its parent
container profile. If 0, it is not a mandatory stream

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="presence">
<parameter_description> the number of time the profile can be used
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_set_preset">
<description>
Sets the name of the #GstElement that implements the #GstPreset interface
to use for the profile.
This is the name that has been set when saving the preset.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="preset">
<parameter_description> the element preset to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_set_preset_name">
<description>
Sets the name of the #GstPreset's factory to be used in the profile.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="preset_name">
<parameter_description> The name of the preset to use in this @profile.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_set_restriction">
<description>
Set the restriction #GstCaps to apply before the encoder
that will be used in the profile. See gst_encoding_profile_set_restriction()
for more about restrictions. Does not apply to #GstEncodingContainerProfile.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
<parameter name="restriction">
<parameter_description> the restriction to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_profile_unref">
<description>
Decreases the reference count of the @profile, possibly freeing the @profile.

</description>
<parameters>
<parameter name="profile">
<parameter_description> a #GstEncodingProfile
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_target_add_profile">
<description>
Adds the given @profile to the @target. Each added profile must have
a unique name within the profile.

The @target will steal a reference to the @profile. If you wish to use
the profile after calling this method, you should increase its reference
count.


</description>
<parameters>
<parameter name="target">
<parameter_description> the #GstEncodingTarget to add a profile to
</parameter_description>
</parameter>
<parameter name="profile">
<parameter_description> the #GstEncodingProfile to add
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the profile was added, else %FALSE.
</return>
</function>

<function name="gst_encoding_target_get_category">
<description>

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
</parameters>
<return> The category of the @target. For example:
#GST_ENCODING_CATEGORY_DEVICE.
</return>
</function>

<function name="gst_encoding_target_get_description">
<description>

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
</parameters>
<return> The description of the @target.
</return>
</function>

<function name="gst_encoding_target_get_name">
<description>

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
</parameters>
<return> The name of the @target.
</return>
</function>

<function name="gst_encoding_target_get_profile">
<description>

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the profile to retrieve
</parameter_description>
</parameter>
</parameters>
<return> The matching #GstEncodingProfile, or %NULL.
</return>
</function>

<function name="gst_encoding_target_get_profiles">
<description>

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
</parameters>
<return> A list of
#GstEncodingProfile(s) this @target handles.
</return>
</function>

<function name="gst_encoding_target_load">
<description>
Searches for the #GstEncodingTarget with the given name, loads it
and returns it.

If the category name is specified only targets from that category will be
searched for.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the #GstEncodingTarget to load.
</parameter_description>
</parameter>
<parameter name="category">
<parameter_description> the name of the target category, like
#GST_ENCODING_CATEGORY_DEVICE. Can be %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> If an error occured, this field will be filled in.
</parameter_description>
</parameter>
</parameters>
<return> The #GstEncodingTarget if available, else %NULL.
</return>
</function>

<function name="gst_encoding_target_load_from_file">
<description>
Opens the provided file and returns the contained #GstEncodingTarget.


</description>
<parameters>
<parameter name="filepath">
<parameter_description> The file location to load the #GstEncodingTarget from
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> If an error occured, this field will be filled in.
</parameter_description>
</parameter>
</parameters>
<return> The #GstEncodingTarget contained in the file, else
%NULL
</return>
</function>

<function name="gst_encoding_target_new">
<description>
Creates a new #GstEncodingTarget.

The name and category can only consist of lowercase ASCII letters for the
first character, followed by either lowercase ASCII letters, digits or
hyphens ('-').

The @category &lt;emphasis&gt;should&lt;/emphasis&gt; be one of the existing
well-defined categories, like #GST_ENCODING_CATEGORY_DEVICE, but it
&lt;emphasis&gt;can&lt;/emphasis&gt; be a application or user specific category if
needed.


</description>
<parameters>
<parameter name="name">
<parameter_description> The name of the target.
</parameter_description>
</parameter>
<parameter name="category">
<parameter_description> The name of the category to which this @target
belongs. For example: #GST_ENCODING_CATEGORY_DEVICE.
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> A description of #GstEncodingTarget in the
current locale.
</parameter_description>
</parameter>
<parameter name="profiles">
<parameter_description> A #GList of
#GstEncodingProfile.
</parameter_description>
</parameter>
</parameters>
<return> The newly created #GstEncodingTarget or %NULL if
there was an error.
</return>
</function>

<function name="gst_encoding_target_ref">
<description>
Increases the reference count of the @target.

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_target_save">
<description>
Saves the @target to a default user-local directory.


</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> If an error occured, this field will be filled in.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the target was correctly saved, else %FALSE.
</return>
</function>

<function name="gst_encoding_target_save_to_file">
<description>
Saves the @target to the provided file location.


</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
<parameter name="filepath">
<parameter_description> the location to store the @target at.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> If an error occured, this field will be filled in.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the target was correctly saved, else %FALSE.
</return>
</function>

<function name="gst_encoding_target_unref">
<description>
Decreases the reference count of the @target, possibly freeing it.

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GstEncodingTarget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_video_profile_get_pass">
<description>
Get the pass number if this is part of a multi-pass profile.


</description>
<parameters>
<parameter name="prof">
<parameter_description> a #GstEncodingVideoProfile
</parameter_description>
</parameter>
</parameters>
<return> The pass number. Starts at 1 for multi-pass. 0 if this is
not a multi-pass profile
</return>
</function>

<function name="gst_encoding_video_profile_get_variableframerate">
<description>

</description>
<parameters>
<parameter name="prof">
<parameter_description> a #GstEncodingVideoProfile
</parameter_description>
</parameter>
</parameters>
<return> Whether non-constant video framerate is allowed for encoding.
</return>
</function>

<function name="gst_encoding_video_profile_new">
<description>
Creates a new #GstEncodingVideoProfile

All provided allocatable arguments will be internally copied, so can be
safely freed/unreferenced after calling this method.

If you wish to control the pass number (in case of multi-pass scenarios),
please refer to the gst_encoding_video_profile_set_pass() documentation.

If you wish to use/force a constant framerate please refer to the
gst_encoding_video_profile_set_variableframerate() documentation.


</description>
<parameters>
<parameter name="format">
<parameter_description> the #GstCaps
</parameter_description>
</parameter>
<parameter name="preset">
<parameter_description> the preset(s) to use on the encoder, can be #NULL
</parameter_description>
</parameter>
<parameter name="restriction">
<parameter_description> the #GstCaps used to restrict the input to the encoder, can be
NULL. See gst_encoding_profile_get_restriction() for more details.
</parameter_description>
</parameter>
<parameter name="presence">
<parameter_description> the number of time this stream must be used. 0 means any number of
times (including never)
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GstEncodingVideoProfile.
</return>
</function>

<function name="gst_encoding_video_profile_set_pass">
<description>
Sets the pass number of this video profile. The first pass profile should have
this value set to 1. If this video profile isn't part of a multi-pass profile,
you may set it to 0 (the default value).

</description>
<parameters>
<parameter name="prof">
<parameter_description> a #GstEncodingVideoProfile
</parameter_description>
</parameter>
<parameter name="pass">
<parameter_description> the pass number for this profile
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_encoding_video_profile_set_variableframerate">
<description>
If set to %TRUE, then the incoming stream will be allowed to have non-constant
framerate. If set to %FALSE (default value), then the incoming stream will
be normalized by dropping/duplicating frames in order to produce a
constance framerate.

</description>
<parameters>
<parameter name="prof">
<parameter_description> a #GstEncodingVideoProfile
</parameter_description>
</parameter>
<parameter name="variableframerate">
<parameter_description> a boolean
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_error_get_message">
<description>
Get a string describing the error message in the current locale.


</description>
<parameters>
<parameter name="domain">
<parameter_description> the GStreamer error domain this error belongs to.
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> the error code belonging to the domain.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated string describing
the error message (in UTF-8 encoding)
</return>
</function>

<function name="gst_event_copy">
<description>
Copy the event using the event specific copy function.


</description>
<parameters>
<parameter name="event">
<parameter_description> The event to copy
</parameter_description>
</parameter>
</parameters>
<return> the new event
</return>
</function>

<function name="gst_event_copy_segment">
<description>
Parses a segment @event and copies the #GstSegment into the location
given by @segment.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to parse
</parameter_description>
</parameter>
<parameter name="segment">
<parameter_description> a pointer to a #GstSegment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_get_seqnum">
<description>
Retrieve the sequence number of a event.

Events have ever-incrementing sequence numbers, which may also be set
explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
indicate that a event corresponds to some other set of events or messages,
for example an EOS event corresponding to a SEEK event. It is considered good
practice to make this correspondence when possible, though it is not
required.

Note that events and messages share the same sequence number incrementor;
two events or messages will never have the same sequence number unless
that correspondence was made explicitly.


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent.
</parameter_description>
</parameter>
</parameters>
<return> The event's sequence number.

MT safe.
</return>
</function>

<function name="gst_event_get_structure">
<description>
Access the structure of the event.


</description>
<parameters>
<parameter name="event">
<parameter_description> The #GstEvent.
</parameter_description>
</parameter>
</parameters>
<return> The structure of the event. The structure is still
owned by the event, which means that you should not free it and
that the pointer becomes invalid when you free the event.

MT safe.
</return>
</function>

<function name="gst_event_has_name">
<description>
Checks if @event has the given @name. This function is usually used to
check the name of a custom event.


</description>
<parameters>
<parameter name="event">
<parameter_description> The #GstEvent.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @name matches the name of the event structure.
</return>
</function>

<function name="gst_event_is_writable">
<description>
Tests if you can safely write data into a event's structure or validly
modify the seqnum and timestamp field.

</description>
<parameters>
<parameter name="ev">
<parameter_description> a #GstEvent
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_make_writable">
<description>
Makes a writable event from the given event. If the source event is
already writable, this will simply return the same event. A copy will
otherwise be made using gst_event_copy().


</description>
<parameters>
<parameter name="ev">
<parameter_description> a #GstEvent
</parameter_description>
</parameter>
</parameters>
<return> a writable event which may or may not be the
same as @ev
</return>
</function>

<function name="gst_event_new_buffer_size">
<description>
Create a new buffersize event. The event is sent downstream and notifies
elements that they should provide a buffer of the specified dimensions.

When the @async flag is set, a thread boundary is preferred.


</description>
<parameters>
<parameter name="format">
<parameter_description> buffer format
</parameter_description>
</parameter>
<parameter name="minsize">
<parameter_description> minimum buffer size
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> maximum buffer size
</parameter_description>
</parameter>
<parameter name="async">
<parameter_description> thread behavior
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_caps">
<description>
Create a new CAPS event for @caps. The caps event can only travel downstream
synchronized with the buffer flow and contains the format of the buffers
that will follow after the event.


</description>
<parameters>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> the new CAPS event.
</return>
</function>

<function name="gst_event_new_context">
<description>
Create a new context event. The purpose of the context event is
to pass a pipeline-local context to downstream elements.


</description>
<parameters>
<parameter name="context">
<parameter_description> the #GstContext
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent

</return>
</function>

<function name="gst_event_new_custom">
<description>
Create a new custom-typed event. This can be used for anything not
handled by other event-specific functions to pass an event to another
element.

Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
assigning a free number and filling in the correct direction and
serialization flags.

New custom events can also be created by subclassing the event type if
needed.


</description>
<parameters>
<parameter name="type">
<parameter_description> The type of the new event
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the structure for the event. The event will
take ownership of the structure.
</parameter_description>
</parameter>
</parameters>
<return> the new custom event.
</return>
</function>

<function name="gst_event_new_eos">
<description>
Create a new EOS event. The eos event can only travel downstream
synchronized with the buffer flow. Elements that receive the EOS
event on a pad can return #GST_FLOW_EOS as a #GstFlowReturn
when data after the EOS event arrives.

The EOS event will travel down to the sink elements in the pipeline
which will then post the #GST_MESSAGE_EOS on the bus after they have
finished playing any buffered data.

When all sinks have posted an EOS message, an EOS message is
forwarded to the application.

The EOS event itself will not cause any state transitions of the pipeline.


</description>
<parameters>
</parameters>
<return> the new EOS event.
</return>
</function>

<function name="gst_event_new_flush_start">
<description>
Allocate a new flush start event. The flush start event can be sent
upstream and downstream and travels out-of-bounds with the dataflow.

It marks pads as being flushing and will make them return
#GST_FLOW_FLUSHING when used for data flow with gst_pad_push(),
gst_pad_chain(), gst_pad_get_range() and gst_pad_pull_range().
Any event (except a #GST_EVENT_FLUSH_STOP) received
on a flushing pad will return %FALSE immediately.

Elements should unlock any blocking functions and exit their streaming
functions as fast as possible when this event is received.

This event is typically generated after a seek to flush out all queued data
in the pipeline so that the new media is played as soon as possible.


</description>
<parameters>
</parameters>
<return> a new flush start event.
</return>
</function>

<function name="gst_event_new_flush_stop">
<description>
Allocate a new flush stop event. The flush stop event can be sent
upstream and downstream and travels serialized with the dataflow.
It is typically sent after sending a FLUSH_START event to make the
pads accept data again.

Elements can process this event synchronized with the dataflow since
the preceeding FLUSH_START event stopped the dataflow.

This event is typically generated to complete a seek and to resume
dataflow.


</description>
<parameters>
<parameter name="reset_time">
<parameter_description> if time should be reset
</parameter_description>
</parameter>
</parameters>
<return> a new flush stop event.
</return>
</function>

<function name="gst_event_new_gap">
<description>
Create a new GAP event. A gap event can be thought of as conceptually
equivalent to a buffer to signal that there is no data for a certain
amount of time. This is useful to signal a gap to downstream elements
which may wait for data, such as muxers or mixers or overlays, especially
for sparse streams such as subtitle streams.


</description>
<parameters>
<parameter name="timestamp">
<parameter_description> the start time (pts) of the gap
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the gap
</parameter_description>
</parameter>
</parameters>
<return> the new GAP event.
</return>
</function>

<function name="gst_event_new_latency">
<description>
Create a new latency event. The event is sent upstream from the sinks and
notifies elements that they should add an additional @latency to the
running time before synchronising against the clock.

The latency is mostly used in live sinks and is always expressed in
the time format.


</description>
<parameters>
<parameter name="latency">
<parameter_description> the new latency value
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_navigation">
<description>
Create a new navigation event from the given description.


</description>
<parameters>
<parameter name="structure">
<parameter_description> description of the event. The event will take
ownership of the structure.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_qos">
<description>
Allocate a new qos event with the given values.
The QOS event is generated in an element that wants an upstream
element to either reduce or increase its rate because of
high/low CPU load or other resource usage such as network performance or
throttling. Typically sinks generate these events for each buffer
they receive.

@type indicates the reason for the QoS event. #GST_QOS_TYPE_OVERFLOW is
used when a buffer arrived in time or when the sink cannot keep up with
the upstream datarate. #GST_QOS_TYPE_UNDERFLOW is when the sink is not
receiving buffers fast enough and thus has to drop late buffers. 
#GST_QOS_TYPE_THROTTLE is used when the datarate is artificially limited
by the application, for example to reduce power consumption.

@proportion indicates the real-time performance of the streaming in the
element that generated the QoS event (usually the sink). The value is
generally computed based on more long term statistics about the streams
timestamps compared to the clock.
A value &lt; 1.0 indicates that the upstream element is producing data faster
than real-time. A value &gt; 1.0 indicates that the upstream element is not
producing data fast enough. 1.0 is the ideal @proportion value. The
proportion value can safely be used to lower or increase the quality of
the element.

@diff is the difference against the clock in running time of the last
buffer that caused the element to generate the QOS event. A negative value
means that the buffer with @timestamp arrived in time. A positive value
indicates how late the buffer with @timestamp was. When throttling is
enabled, @diff will be set to the requested throttling interval.

@timestamp is the timestamp of the last buffer that cause the element
to generate the QOS event. It is expressed in running time and thus an ever
increasing value.

The upstream element can use the @diff and @timestamp values to decide
whether to process more buffers. For possitive @diff, all buffers with
timestamp &lt;= @timestamp + @diff will certainly arrive late in the sink
as well. A (negative) @diff value so that @timestamp + @diff would yield a
result smaller than 0 is not allowed.

The application can use general event probes to intercept the QoS
event and implement custom application specific QoS handling.


</description>
<parameters>
<parameter name="type">
<parameter_description> the QoS type
</parameter_description>
</parameter>
<parameter name="proportion">
<parameter_description> the proportion of the qos message
</parameter_description>
</parameter>
<parameter name="diff">
<parameter_description> The time difference of the last Clock sync
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> The timestamp of the buffer
</parameter_description>
</parameter>
</parameters>
<return> a new QOS event.
</return>
</function>

<function name="gst_event_new_reconfigure">
<description>
Create a new reconfigure event. The purpose of the reconfingure event is
to travel upstream and make elements renegotiate their caps or reconfigure
their buffer pools. This is useful when changing properties on elements
or changing the topology of the pipeline.


</description>
<parameters>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_seek">
<description>
Allocate a new seek event with the given parameters.

The seek event configures playback of the pipeline between @start to @stop
at the speed given in @rate, also called a playback segment.
The @start and @stop values are expressed in @format.

A @rate of 1.0 means normal playback rate, 2.0 means double speed.
Negatives values means backwards playback. A value of 0.0 for the
rate is not allowed and should be accomplished instead by PAUSING the
pipeline.

A pipeline has a default playback segment configured with a start
position of 0, a stop position of -1 and a rate of 1.0. The currently
configured playback segment can be queried with #GST_QUERY_SEGMENT. 

@start_type and @stop_type specify how to adjust the currently configured 
start and stop fields in playback segment. Adjustments can be made relative
or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
means that the position should not be updated.

When the rate is positive and @start has been updated, playback will start
from the newly configured start position. 

For negative rates, playback will start from the newly configured stop
position (if any). If the stop position is updated, it must be different from
-1 (#GST_CLOCK_TIME_NONE) for negative rates.

It is not possible to seek relative to the current playback position, to do
this, PAUSE the pipeline, query the current playback position with
#GST_QUERY_POSITION and update the playback segment current position with a
#GST_SEEK_TYPE_SET to the desired position.


</description>
<parameters>
<parameter name="rate">
<parameter_description> The new playback rate
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The format of the seek values
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> The optional seek flags
</parameter_description>
</parameter>
<parameter name="start_type">
<parameter_description> The type and flags for the new start position
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> The value of the new start position
</parameter_description>
</parameter>
<parameter name="stop_type">
<parameter_description> The type and flags for the new stop position
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> The value of the new stop position
</parameter_description>
</parameter>
</parameters>
<return> a new seek event.
</return>
</function>

<function name="gst_event_new_segment">
<description>
Create a new SEGMENT event for @segment. The segment event can only travel
downstream synchronized with the buffer flow and contains timing information
and playback properties for the buffers that will follow.

The newsegment event marks the range of buffers to be processed. All
data not within the segment range is not to be processed. This can be
used intelligently by plugins to apply more efficient methods of skipping
unneeded data. The valid range is expressed with the @start and @stop
values.

The time value of the segment is used in conjunction with the start
value to convert the buffer timestamps into the stream time. This is
usually done in sinks to report the current stream_time.
@time represents the stream_time of a buffer carrying a timestamp of
@start. @time cannot be -1.

@start cannot be -1, @stop can be -1. If there
is a valid @stop given, it must be greater or equal the @start, including
when the indicated playback @rate is &lt; 0.

The @applied_rate value provides information about any rate adjustment that
has already been made to the timestamps and content on the buffers of the
stream. (@rate * @applied_rate) should always equal the rate that has been
requested for playback. For example, if an element has an input segment
with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust
incoming timestamps and buffer content by half and output a newsegment event
with @rate of 1.0 and @applied_rate of 2.0

After a newsegment event, the buffer stream time is calculated with:

time + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment
</parameter_description>
</parameter>
</parameters>
<return> the new SEGMENT event.
</return>
</function>

<function name="gst_event_new_segment_done">
<description>
Create a new segment-done event. This event is sent by elements that
finish playback of a segment as a result of a segment seek.


</description>
<parameters>
<parameter name="format">
<parameter_description> The format of the position being done
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The position of the segment being done
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_sink_message">
<description>
Create a new sink-message event. The purpose of the sink-message event is
to instruct a sink to post the message contained in the event synchronized
with the stream.

@name is used to store multiple sticky events on one pad.


</description>
<parameters>
<parameter name="name">
<parameter_description> a name for the event
</parameter_description>
</parameter>
<parameter name="msg">
<parameter_description> the #GstMessage to be posted
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_step">
<description>
Create a new step event. The purpose of the step event is to instruct a sink
to skip @amount (expressed in @format) of media. It can be used to implement
stepping through the video frame by frame or for doing fast trick modes.

A rate of &lt;= 0.0 is not allowed. Pause the pipeline, for the effect of rate
= 0.0 or first reverse the direction of playback using a seek event to get
the same effect as rate &lt; 0.0.

The @flush flag will clear any pending data in the pipeline before starting
the step operation.

The @intermediate flag instructs the pipeline that this step operation is
part of a larger step operation.


</description>
<parameters>
<parameter name="format">
<parameter_description> the format of @amount
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> the amount of data to step
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> the step rate
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> flushing steps
</parameter_description>
</parameter>
<parameter name="intermediate">
<parameter_description> intermediate steps
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_stream_start">
<description>
Create a new STREAM_START event. The stream start event can only
travel downstream synchronized with the buffer flow. It is expected
to be the first event that is sent for a new stream.

Source elements, demuxers and other elements that create new streams
are supposed to send this event as the first event of a new stream. It
should not be send after a flushing seek or in similar situations
and is used to mark the beginning of a new logical stream. Elements
combining multiple streams must ensure that this event is only forwarded
downstream once and not for every single input stream.

The @stream_id should be a unique string that consists of the upstream
stream-id, / as separator and a unique stream-id for this specific
stream. A new stream-id should only be created for a stream if the upstream
stream is split into (potentially) multiple new streams, e.g. in a demuxer,
but not for every single element in the pipeline.
gst_pad_create_stream_id() or gst_pad_create_stream_id_printf() can be
used to create a stream-id.


</description>
<parameters>
<parameter name="stream_id">
<parameter_description> Identifier for this stream
</parameter_description>
</parameter>
</parameters>
<return> the new STREAM_START event.
</return>
</function>

<function name="gst_event_new_tag">
<description>
Generates a metadata tag event from the given @taglist.

The scope of the taglist specifies if the taglist applies to the
complete medium or only to this specific stream. As the tag event
is a sticky event, elements should merge tags received from
upstream with a given scope with their own tags with the same
scope and create a new tag event from it.


</description>
<parameters>
<parameter name="taglist">
<parameter_description> metadata list. The event will take ownership
of the taglist.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent
</return>
</function>

<function name="gst_event_new_toc">
<description>
Generate a TOC event from the given @toc. The purpose of the TOC event is to
inform elements that some kind of the TOC was found.


</description>
<parameters>
<parameter name="toc">
<parameter_description> #GstToc structure.
</parameter_description>
</parameter>
<parameter name="updated">
<parameter_description> whether @toc was updated or not.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent.
</return>
</function>

<function name="gst_event_new_toc_select">
<description>
Generate a TOC select event with the given @uid. The purpose of the
TOC select event is to start playback based on the TOC's entry with the
given @uid.


</description>
<parameters>
<parameter name="uid">
<parameter_description> UID in the TOC to start playback from.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstEvent.
</return>
</function>

<function name="gst_event_parse_buffer_size">
<description>
Get the format, minsize, maxsize and async-flag in the buffersize event.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to query
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> A pointer to store the format in
</parameter_description>
</parameter>
<parameter name="minsize">
<parameter_description> A pointer to store the minsize in
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> A pointer to store the maxsize in
</parameter_description>
</parameter>
<parameter name="async">
<parameter_description> A pointer to store the async-flag in
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_caps">
<description>
Get the caps from @event. The caps remains valid as long as @event remains
valid.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to parse
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> A pointer to the caps
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_context">
<description>
Parse the context event. Unref @context after usage.


</description>
<parameters>
<parameter name="event">
<parameter_description> The event to query
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a pointer to store the #GstContext in.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_flush_stop">
<description>
Parse the FLUSH_STOP event and retrieve the @reset_time member.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to parse
</parameter_description>
</parameter>
<parameter name="reset_time">
<parameter_description> if time should be reset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_gap">
<description>
Extract timestamp and duration from a new GAP event.

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GstEvent of type #GST_EVENT_GAP
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> location where to store the
start time (pts) of the gap, or %NULL
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> location where to store the duration of
the gap, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_latency">
<description>
Get the latency in the latency event.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to query
</parameter_description>
</parameter>
<parameter name="latency">
<parameter_description> A pointer to store the latency in.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_qos">
<description>
Get the type, proportion, diff and timestamp in the qos event. See
gst_event_new_qos() for more information about the different QoS values.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to query
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> A pointer to store the QoS type in
</parameter_description>
</parameter>
<parameter name="proportion">
<parameter_description> A pointer to store the proportion in
</parameter_description>
</parameter>
<parameter name="diff">
<parameter_description> A pointer to store the diff in
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> A pointer to store the timestamp in
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_seek">
<description>
Parses a seek @event and stores the results in the given result locations.

</description>
<parameters>
<parameter name="event">
<parameter_description> a seek event
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> result location for the rate
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> result location for the stream format
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> result location for the #GstSeekFlags
</parameter_description>
</parameter>
<parameter name="start_type">
<parameter_description> result location for the #GstSeekType of the start position
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> result location for the start postion expressed in @format
</parameter_description>
</parameter>
<parameter name="stop_type">
<parameter_description> result location for the #GstSeekType of the stop position
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> result location for the stop postion expressed in @format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_segment">
<description>
Parses a segment @event and stores the result in the given @segment location.
@segment remains valid only until the @event is freed. Don't modify the segment
and make a copy if you want to modify it or store it for later use.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to parse
</parameter_description>
</parameter>
<parameter name="segment">
<parameter_description> a pointer to a #GstSegment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_segment_done">
<description>
Extracts the position and format from the segment done message.


</description>
<parameters>
<parameter name="event">
<parameter_description> A valid #GstEvent of type GST_EVENT_SEGMENT_DONE.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> Result location for the format, or NULL
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> Result location for the position, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_sink_message">
<description>
Parse the sink-message event. Unref @msg after usage.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to query
</parameter_description>
</parameter>
<parameter name="msg">
<parameter_description> a pointer to store the #GstMessage in.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_step">
<description>
Parse the step event.

</description>
<parameters>
<parameter name="event">
<parameter_description> The event to query
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> a pointer to store the format in
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> a pointer to store the amount in
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> a pointer to store the rate in
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> a pointer to store the flush boolean in
</parameter_description>
</parameter>
<parameter name="intermediate">
<parameter_description> a pointer to store the intermediate
boolean in
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_stream_flags">
<description>

</description>
<parameters>
<parameter name="event">
<parameter_description> a stream-start event
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> address of variable where to store the stream flags
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_stream_start">
<description>
Parse a stream-id @event and store the result in the given @stream_id
location. The string stored in @stream_id must not be modified and will
remain valid only until @event gets freed. Make a copy if you want to
modify it or store it for later use.

</description>
<parameters>
<parameter name="event">
<parameter_description> a stream-start event.
</parameter_description>
</parameter>
<parameter name="stream_id">
<parameter_description> pointer to store the stream-id
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_tag">
<description>
Parses a tag @event and stores the results in the given @taglist location.
No reference to the taglist will be returned, it remains valid only until
the @event is freed. Don't modify or free the taglist, make a copy if you
want to modify it or store it for later use.

</description>
<parameters>
<parameter name="event">
<parameter_description> a tag event
</parameter_description>
</parameter>
<parameter name="taglist">
<parameter_description> pointer to metadata list
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_toc">
<description>
Parse a TOC @event and store the results in the given @toc and @updated locations.

</description>
<parameters>
<parameter name="event">
<parameter_description> a TOC event.
</parameter_description>
</parameter>
<parameter name="toc">
<parameter_description> pointer to #GstToc structure.
</parameter_description>
</parameter>
<parameter name="updated">
<parameter_description> pointer to store TOC updated flag.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_parse_toc_select">
<description>
Parse a TOC select @event and store the results in the given @uid location.

</description>
<parameters>
<parameter name="event">
<parameter_description> a TOC select event.
</parameter_description>
</parameter>
<parameter name="uid">
<parameter_description> storage for the selection UID.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_ref">
<description>
Increase the refcount of this event.


</description>
<parameters>
<parameter name="event">
<parameter_description> The event to refcount
</parameter_description>
</parameter>
</parameters>
<return> @event (for convenience when doing assignments)
</return>
</function>

<function name="gst_event_replace">
<description>
Modifies a pointer to a #GstEvent to point to a different #GstEvent. The
modification is done atomically (so this is useful for ensuring thread safety
in some cases), and the reference counts are updated appropriately (the old
event is unreffed, the new one is reffed).

Either @new_event or the #GstEvent pointed to by @old_event may be NULL.


</description>
<parameters>
<parameter name="old_event">
<parameter_description> pointer to a pointer to a #GstEvent
to be replaced.
</parameter_description>
</parameter>
<parameter name="new_event">
<parameter_description> pointer to a #GstEvent that will
replace the event pointed to by @old_event.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @new_event was different from @old_event
</return>
</function>

<function name="gst_event_set_seqnum">
<description>
Set the sequence number of a event.

This function might be called by the creator of a event to indicate that the
event relates to other events or messages. See gst_event_get_seqnum() for
more information.

MT safe.

</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent.
</parameter_description>
</parameter>
<parameter name="seqnum">
<parameter_description> A sequence number.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_set_stream_flags">
<description>

</description>
<parameters>
<parameter name="event">
<parameter_description> a stream-start event
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the stream flags to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_steal">
<description>
Atomically replace the #GstEvent pointed to by @old_event with NULL and
return the original event.


</description>
<parameters>
<parameter name="old_event">
<parameter_description> pointer to a pointer to a #GstEvent
to be stolen.
</parameter_description>
</parameter>
</parameters>
<return> the #GstEvent that was in @old_event
</return>
</function>

<function name="gst_event_take">
<description>
Modifies a pointer to a #GstEvent to point to a different #GstEvent. This
function is similar to gst_event_replace() except that it takes ownership of
@new_event.

Either @new_event or the #GstEvent pointed to by @old_event may be NULL.


</description>
<parameters>
<parameter name="old_event">
<parameter_description> pointer to a pointer to a #GstEvent
to be stolen.
</parameter_description>
</parameter>
<parameter name="new_event">
<parameter_description> pointer to a #GstEvent that will
replace the event pointed to by @old_event.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @new_event was different from @old_event
</return>
</function>

<function name="gst_event_type_get_flags">
<description>
Gets the #GstEventTypeFlags associated with @type.


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GstEventType
</parameter_description>
</parameter>
</parameters>
<return> a #GstEventTypeFlags.
</return>
</function>

<function name="gst_event_type_get_name">
<description>
Get a printable name for the given event type. Do not modify or free.


</description>
<parameters>
<parameter name="type">
<parameter_description> the event type
</parameter_description>
</parameter>
</parameters>
<return> a reference to the static name of the event.
</return>
</function>

<function name="gst_event_type_to_quark">
<description>
Get the unique quark for the given event type.


</description>
<parameters>
<parameter name="type">
<parameter_description> the event type
</parameter_description>
</parameter>
</parameters>
<return> the quark associated with the event type
</return>
</function>

<function name="gst_event_unref">
<description>
Decrease the refcount of an event, freeing it if the refcount reaches 0.

</description>
<parameters>
<parameter name="event">
<parameter_description> the event to refcount
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_event_writable_structure">
<description>
Get a writable version of the structure.


</description>
<parameters>
<parameter name="event">
<parameter_description> The #GstEvent.
</parameter_description>
</parameter>
</parameters>
<return> The structure of the event. The structure is still
owned by the event, which means that you should not free it and
that the pointer becomes invalid when you free the event.
This function checks if @event is writable and will never return NULL.

MT safe.
</return>
</function>

<function name="gst_fft_f32_fft">
<description>
This performs the FFT on @timedata and puts the result in @freqdata.

@timedata must have as many samples as specified with the @len parameter while
allocating the #GstFFTF32 instance with gst_fft_f32_new().

@freqdata must be large enough to hold @len/2 + 1 #GstFFTF32Complex frequency
domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF32 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Buffer of the samples in the time domain
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Target buffer for the samples in the frequency domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_f32_free">
<description>
This frees the memory allocated for @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF32 instance for this call
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_f32_inverse_fft">
<description>
This performs the inverse FFT on @freqdata and puts the result in @timedata.

@freqdata must have @len/2 + 1 samples, where @len is the parameter specified
while allocating the #GstFFTF32 instance with gst_fft_f32_new().

@timedata must be large enough to hold @len time domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF32 instance for this call
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Buffer of the samples in the frequency domain
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Target buffer for the samples in the time domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_f32_new">
<description>
This returns a new #GstFFTF32 instance with the given parameters. It makes
sense to keep one instance for several calls for speed reasons.

@len must be even and to get the best performance a product of
2, 3 and 5. To get the next number with this characteristics use
gst_fft_next_fast_length().


</description>
<parameters>
<parameter name="len">
<parameter_description> Length of the FFT in the time domain
</parameter_description>
</parameter>
<parameter name="inverse">
<parameter_description> %TRUE if the #GstFFTF32 instance should be used for the inverse FFT
</parameter_description>
</parameter>
</parameters>
<return> a new #GstFFTF32 instance.
</return>
</function>

<function name="gst_fft_f32_window">
<description>
This calls the window function @window on the @timedata sample buffer.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF32 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Time domain samples
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> Window function to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_f64_fft">
<description>
This performs the FFT on @timedata and puts the result in @freqdata.

@timedata must have as many samples as specified with the @len parameter while
allocating the #GstFFTF64 instance with gst_fft_f64_new().

@freqdata must be large enough to hold @len/2 + 1 #GstFFTF64Complex frequency
domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF64 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Buffer of the samples in the time domain
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Target buffer for the samples in the frequency domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_f64_free">
<description>
This frees the memory allocated for @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF64 instance for this call
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_f64_inverse_fft">
<description>
This performs the inverse FFT on @freqdata and puts the result in @timedata.

@freqdata must have @len/2 + 1 samples, where @len is the parameter specified
while allocating the #GstFFTF64 instance with gst_fft_f64_new().

@timedata must be large enough to hold @len time domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF64 instance for this call
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Buffer of the samples in the frequency domain
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Target buffer for the samples in the time domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_f64_new">
<description>
This returns a new #GstFFTF64 instance with the given parameters. It makes
sense to keep one instance for several calls for speed reasons.

@len must be even and to get the best performance a product of
2, 3 and 5. To get the next number with this characteristics use
gst_fft_next_fast_length().


</description>
<parameters>
<parameter name="len">
<parameter_description> Length of the FFT in the time domain
</parameter_description>
</parameter>
<parameter name="inverse">
<parameter_description> %TRUE if the #GstFFTF64 instance should be used for the inverse FFT
</parameter_description>
</parameter>
</parameters>
<return> a new #GstFFTF64 instance.
</return>
</function>

<function name="gst_fft_f64_window">
<description>
This calls the window function @window on the @timedata sample buffer.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTF64 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Time domain samples
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> Window function to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_next_fast_length">
<description>
Returns the next number to @n that is entirely a product
of 2, 3 and 5. Using this as the @len parameter for
the different GstFFT types will provide the best performance.


</description>
<parameters>
<parameter name="n">
<parameter_description> Number for which the next fast length should be returned
</parameter_description>
</parameter>
</parameters>
<return> the next fast FFT length.

</return>
</function>

<function name="gst_fft_s16_fft">
<description>
This performs the FFT on @timedata and puts the result in @freqdata.

@timedata must have as many samples as specified with the @len parameter while
allocating the #GstFFTS16 instance with gst_fft_s16_new().

@freqdata must be large enough to hold @len/2 + 1 #GstFFTS16Complex frequency
domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS16 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Buffer of the samples in the time domain
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Target buffer for the samples in the frequency domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_s16_free">
<description>
This frees the memory allocated for @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS16 instance for this call
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_s16_inverse_fft">
<description>
This performs the inverse FFT on @freqdata and puts the result in @timedata.

@freqdata must have @len/2 + 1 samples, where @len is the parameter specified
while allocating the #GstFFTS16 instance with gst_fft_s16_new().

@timedata must be large enough to hold @len time domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS16 instance for this call
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Buffer of the samples in the frequency domain
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Target buffer for the samples in the time domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_s16_new">
<description>
This returns a new #GstFFTS16 instance with the given parameters. It makes
sense to keep one instance for several calls for speed reasons.

@len must be even and to get the best performance a product of
2, 3 and 5. To get the next number with this characteristics use
gst_fft_next_fast_length().


</description>
<parameters>
<parameter name="len">
<parameter_description> Length of the FFT in the time domain
</parameter_description>
</parameter>
<parameter name="inverse">
<parameter_description> %TRUE if the #GstFFTS16 instance should be used for the inverse FFT
</parameter_description>
</parameter>
</parameters>
<return> a new #GstFFTS16 instance.
</return>
</function>

<function name="gst_fft_s16_window">
<description>
This calls the window function @window on the @timedata sample buffer.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS16 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Time domain samples
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> Window function to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_s32_fft">
<description>
This performs the FFT on @timedata and puts the result in @freqdata.

@timedata must have as many samples as specified with the @len parameter while
allocating the #GstFFTS32 instance with gst_fft_s32_new().

@freqdata must be large enough to hold @len/2 + 1 #GstFFTS32Complex frequency
domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS32 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Buffer of the samples in the time domain
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Target buffer for the samples in the frequency domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_s32_free">
<description>
This frees the memory allocated for @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS32 instance for this call
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_s32_inverse_fft">
<description>
This performs the inverse FFT on @freqdata and puts the result in @timedata.

@freqdata must have @len/2 + 1 samples, where @len is the parameter specified
while allocating the #GstFFTS32 instance with gst_fft_s32_new().

@timedata must be large enough to hold @len time domain samples.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS32 instance for this call
</parameter_description>
</parameter>
<parameter name="freqdata">
<parameter_description> Buffer of the samples in the frequency domain
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Target buffer for the samples in the time domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_fft_s32_new">
<description>
This returns a new #GstFFTS32 instance with the given parameters. It makes
sense to keep one instance for several calls for speed reasons.

@len must be even and to get the best performance a product of
2, 3 and 5. To get the next number with this characteristics use
gst_fft_next_fast_length().


</description>
<parameters>
<parameter name="len">
<parameter_description> Length of the FFT in the time domain
</parameter_description>
</parameter>
<parameter name="inverse">
<parameter_description> %TRUE if the #GstFFTS32 instance should be used for the inverse FFT
</parameter_description>
</parameter>
</parameters>
<return> a new #GstFFTS32 instance.
</return>
</function>

<function name="gst_fft_s32_window">
<description>
This calls the window function @window on the @timedata sample buffer.


</description>
<parameters>
<parameter name="self">
<parameter_description> #GstFFTS32 instance for this call
</parameter_description>
</parameter>
<parameter name="timedata">
<parameter_description> Time domain samples
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> Window function to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_filename_to_uri">
<description>
Similar to g_filename_to_uri(), but attempts to handle relative file paths
as well. Before converting @filename into an URI, it will be prefixed by
the current working directory if it is a relative path, and then the path
will be canonicalised so that it doesn't contain any './' or '../' segments.

On Windows #filename should be in UTF-8 encoding.

</description>
<parameters>
<parameter name="filename">
<parameter_description> absolute or relative file name path
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> pointer to error, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_flow_get_name">
<description>
Gets a string representing the given flow return.


</description>
<parameters>
<parameter name="ret">
<parameter_description> a #GstFlowReturn to get the name of.
</parameter_description>
</parameter>
</parameters>
<return> a static string with the name of the flow return.
</return>
</function>

<function name="gst_flow_to_quark">
<description>
Get the unique quark for the given GstFlowReturn.


</description>
<parameters>
<parameter name="ret">
<parameter_description> a #GstFlowReturn to get the quark of.
</parameter_description>
</parameter>
</parameters>
<return> the quark associated with the flow return or 0 if an
invalid return was specified.
</return>
</function>

<function name="gst_format_get_by_nick">
<description>
Return the format registered with the given nick.


</description>
<parameters>
<parameter name="nick">
<parameter_description> The nick of the format
</parameter_description>
</parameter>
</parameters>
<return> The format with @nick or GST_FORMAT_UNDEFINED
if the format was not registered.
</return>
</function>

<function name="gst_format_get_details">
<description>
Get details about the given format.


</description>
<parameters>
<parameter name="format">
<parameter_description> The format to get details of
</parameter_description>
</parameter>
</parameters>
<return> The #GstFormatDefinition for @format or NULL on failure.

MT safe.
</return>
</function>

<function name="gst_format_get_name">
<description>
Get a printable name for the given format. Do not modify or free.


</description>
<parameters>
<parameter name="format">
<parameter_description> a #GstFormat
</parameter_description>
</parameter>
</parameters>
<return> a reference to the static name of the format or NULL if
the format is unknown.
</return>
</function>

<function name="gst_format_iterate_definitions">
<description>
Iterate all the registered formats. The format definition is read
only.


</description>
<parameters>
</parameters>
<return> a GstIterator of #GstFormatDefinition.
</return>
</function>

<function name="gst_format_register">
<description>
Create a new GstFormat based on the nick or return an
already registered format with that nick.


</description>
<parameters>
<parameter name="nick">
<parameter_description> The nick of the new format
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> The description of the new format
</parameter_description>
</parameter>
</parameters>
<return> A new GstFormat or an already registered format
with the same nick.

MT safe.
</return>
</function>

<function name="gst_format_to_quark">
<description>
Get the unique quark for the given format.


</description>
<parameters>
<parameter name="format">
<parameter_description> a #GstFormat
</parameter_description>
</parameter>
</parameters>
<return> the quark associated with the format or 0 if the format
is unknown.
</return>
</function>

<function name="gst_formats_contains">
<description>
See if the given format is inside the format array.


</description>
<parameters>
<parameter name="formats">
<parameter_description> The format array to search
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format to find
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the format is found inside the array
</return>
</function>

<function name="gst_gdouble_to_guint64">
<description>
Convert @value to a guint64.


</description>
<parameters>
<parameter name="value">
<parameter_description> the #gdouble value to convert
</parameter_description>
</parameter>
</parameters>
<return> @value converted to a #guint64.
</return>
</function>

<function name="gst_ghost_pad_activate_mode_default">
<description>
Invoke the default activate mode function of a ghost pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to activate or deactivate.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the requested activation mode
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> whether the pad should be active or not.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the operation was successful.
</return>
</function>

<function name="gst_ghost_pad_construct">
<description>
Finish initialization of a newly allocated ghost pad.

This function is most useful in language bindings and when subclassing
#GstGhostPad; plugin and application developers normally will not call this
function. Call this function directly after a call to g_object_new
(GST_TYPE_GHOST_PAD, &quot;direction&quot;, @dir, ..., NULL).


</description>
<parameters>
<parameter name="gpad">
<parameter_description> the newly allocated ghost pad
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the construction succeeds, %FALSE otherwise.
</return>
</function>

<function name="gst_ghost_pad_get_target">
<description>
Get the target pad of @gpad. Unref target pad after usage.


</description>
<parameters>
<parameter name="gpad">
<parameter_description> the #GstGhostPad
</parameter_description>
</parameter>
</parameters>
<return> the target #GstPad, can be NULL if the ghostpad
has no target set. Unref target pad after usage.
</return>
</function>

<function name="gst_ghost_pad_internal_activate_mode_default">
<description>
Invoke the default activate mode function of a proxy pad that is
owned by a ghost pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to activate or deactivate.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the requested activation mode
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> whether the pad should be active or not.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the operation was successful.
</return>
</function>

<function name="gst_ghost_pad_new">
<description>
Create a new ghostpad with @target as the target. The direction will be taken
from the target pad. @target must be unlinked.

Will ref the target.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the new pad, or NULL to assign a default name
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the pad to ghost.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPad, or NULL in case of an error.
</return>
</function>

<function name="gst_ghost_pad_new_from_template">
<description>
Create a new ghostpad with @target as the target. The direction will be taken
from the target pad. The template used on the ghostpad will be @template.

Will ref the target.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the new pad, or NULL to assign a default name.
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the pad to ghost.
</parameter_description>
</parameter>
<parameter name="templ">
<parameter_description> the #GstPadTemplate to use on the ghostpad.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPad, or NULL in case of an error.
</return>
</function>

<function name="gst_ghost_pad_new_no_target">
<description>
Create a new ghostpad without a target with the given direction.
A target can be set on the ghostpad later with the
gst_ghost_pad_set_target() function.

The created ghostpad will not have a padtemplate.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the new pad, or NULL to assign a default name.
</parameter_description>
</parameter>
<parameter name="dir">
<parameter_description> the direction of the ghostpad
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPad, or NULL in case of an error.
</return>
</function>

<function name="gst_ghost_pad_new_no_target_from_template">
<description>
Create a new ghostpad based on @templ, without setting a target. The
direction will be taken from the @templ.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the new pad, or NULL to assign a default name
</parameter_description>
</parameter>
<parameter name="templ">
<parameter_description> the #GstPadTemplate to create the ghostpad from.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPad, or NULL in case of an error.
</return>
</function>

<function name="gst_ghost_pad_set_target">
<description>
Set the new target of the ghostpad @gpad. Any existing target
is unlinked and links to the new target are established. if @newtarget is
NULL the target will be cleared.


</description>
<parameters>
<parameter name="gpad">
<parameter_description> the #GstGhostPad
</parameter_description>
</parameter>
<parameter name="newtarget">
<parameter_description> the new pad target
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the new target could be set. This function
can return FALSE when the internal pads could not be linked.
</return>
</function>

<function name="gst_guint64_to_gdouble">
<description>
Convert @value to a gdouble.


</description>
<parameters>
<parameter name="value">
<parameter_description> the #guint64 value to convert
</parameter_description>
</parameter>
</parameters>
<return> @value converted to a #gdouble.
</return>
</function>

<function name="gst_index_add_association">
<description>
Associate given format/value pairs with each other.
Be sure to pass gint64 values to this functions varargs,
you might want to use a gint64 cast to be sure.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to add the entry to
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the index writer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> optinal flags for this entry
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the value
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> other format/value pairs or 0 to end the list
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly added entry in the index.
</return>
</function>

<function name="gst_index_add_associationv">
<description>
Associate given format/value pairs with each other.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to add the entry to
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the index writer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> optinal flags for this entry
</parameter_description>
</parameter>
<parameter name="n">
<parameter_description> number of associations
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> list of associations
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly added entry in the index.
</return>
</function>

<function name="gst_index_add_format">
<description>
Adds a format entry into the index. This function is
used to map dynamic GstFormat ids to their original
format key.

Free-function: gst_index_entry_free


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to add the entry to
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the index writer
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format to add to the index
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly added entry in the index.
</return>
</function>

<function name="gst_index_add_id">
<description>
Add an id entry into the index.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to add the entry to
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the index writer
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> the description of the index writer
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly added entry in the index.
</return>
</function>

<function name="gst_index_add_object">
<description>
Add the given object to the index with the given key.

This function is not yet implemented.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to add the object to
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the index writer
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key for the object
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the GType of the object
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> a pointer to the object to add
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly added entry in the index.
</return>
</function>

<function name="gst_index_commit">
<description>
Tell the index that the writer with the given id is done
with this index and is not going to write any more entries
to it.

</description>
<parameters>
<parameter name="index">
<parameter_description> the index to commit
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the writer that commited the index
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_index_entry_assoc_map">
<description>
Gets alternative formats associated with the indexentry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> the index to search
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the value the find
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to store the value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if there was a value associated with the given
format.
</return>
</function>

<function name="gst_index_entry_copy">
<description>
Copies an entry and returns the result.

Free-function: gst_index_entry_free


</description>
<parameters>
<parameter name="entry">
<parameter_description> the entry to copy
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GstIndexEntry.
</return>
</function>

<function name="gst_index_entry_free">
<description>
Free the memory used by the given entry.

</description>
<parameters>
<parameter name="entry">
<parameter_description> the entry to free
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_index_get_assoc_entry">
<description>
Finds the given format/value in the index


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to search
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the index writer
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> The lookup method to use
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags for the entry
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the value
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to find
</parameter_description>
</parameter>
</parameters>
<return> the entry associated with the value or NULL if the
value was not found.
</return>
</function>

<function name="gst_index_get_assoc_entry_full">
<description>
Finds the given format/value in the index with the given
compare function and user_data.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to search
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the index writer
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> The lookup method to use
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags for the entry
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the value
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to find
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function used to compare entries
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the compare function
</parameter_description>
</parameter>
</parameters>
<return> the entry associated with the value or NULL if the
value was not found.
</return>
</function>

<function name="gst_index_get_certainty">
<description>
Get the certainty of the given index.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to get the certainty of
</parameter_description>
</parameter>
</parameters>
<return> the certainty of the index.
</return>
</function>

<function name="gst_index_get_group">
<description>
Get the id of the current group.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to get the current group from
</parameter_description>
</parameter>
</parameters>
<return> the id of the current group.
</return>
</function>

<function name="gst_index_get_writer_id">
<description>
Before entries can be added to the index, a writer
should obtain a unique id. The methods to add new entries
to the index require this id as an argument.

The application can implement a custom function to map the writer object
to a string. That string will be used to register or look up an id
in the index.

&lt;note&gt;
The caller must not hold @writer's #GST_OBJECT_LOCK, as the default
resolver may call functions that take the object lock as well, and
the lock is not recursive.
&lt;/note&gt;


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to get a unique write id for
</parameter_description>
</parameter>
<parameter name="writer">
<parameter_description> the GstObject to allocate an id for
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a pointer to a gint to hold the id
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the writer would be mapped to an id.
</return>
</function>

<function name="gst_index_new">
<description>
Create a new dummy index object. Use gst_element_set_index() to assign that
to an element or pipeline. This index is not storing anything, but will
still emit e.g. the #GstIndex::entry-added signal.


</description>
<parameters>
</parameters>
<return> a new index object
</return>
</function>

<function name="gst_index_new_group">
<description>
Create a new group for the given index. It will be
set as the current group.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to create the new group in
</parameter_description>
</parameter>
</parameters>
<return> the id of the newly created group.
</return>
</function>

<function name="gst_index_set_certainty">
<description>
Set the certainty of the given index.

</description>
<parameters>
<parameter name="index">
<parameter_description> the index to set the certainty on
</parameter_description>
</parameter>
<parameter name="certainty">
<parameter_description> the certainty to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_index_set_filter">
<description>
Lets the app register a custom filter function so that
it can select what entries should be stored in the index.

</description>
<parameters>
<parameter name="index">
<parameter_description> the index to register the filter on
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the filter to register
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data passed to the filter function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_index_set_filter_full">
<description>
Lets the app register a custom filter function so that
it can select what entries should be stored in the index.

</description>
<parameters>
<parameter name="index">
<parameter_description> the index to register the filter on
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the filter to register
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data passed to the filter function
</parameter_description>
</parameter>
<parameter name="user_data_destroy">
<parameter_description> function to call when @user_data is unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_index_set_group">
<description>
Set the current groupnumber to the given argument.


</description>
<parameters>
<parameter name="index">
<parameter_description> the index to set the new group in
</parameter_description>
</parameter>
<parameter name="groupnum">
<parameter_description> the groupnumber to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the operation succeeded, FALSE if the group
did not exist.
</return>
</function>

<function name="gst_index_set_resolver">
<description>
Lets the app register a custom function to map index
ids to writer descriptions.

</description>
<parameters>
<parameter name="index">
<parameter_description> the index to register the resolver on
</parameter_description>
</parameter>
<parameter name="resolver">
<parameter_description> the resolver to register
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data passed to the resolver function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_index_set_resolver_full">
<description>
Lets the app register a custom function to map index
ids to writer descriptions.

</description>
<parameters>
<parameter name="index">
<parameter_description> the index to register the resolver on
</parameter_description>
</parameter>
<parameter name="resolver">
<parameter_description> the resolver to register
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data passed to the resolver function
</parameter_description>
</parameter>
<parameter name="user_data_destroy">
<parameter_description> destroy function for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_init">
<description>
Initializes the GStreamer library, setting up internal path lists,
registering built-in elements, and loading standard plugins.

Unless the plugin registry is disabled at compile time, the registry will be
loaded. By default this will also check if the registry cache needs to be
updated and rescan all plugins if needed. See gst_update_registry() for
details and section
&lt;link linkend=&quot;gst-running&quot;&gt;Running GStreamer Applications&lt;/link&gt;
for how to disable automatic registry updates.

&lt;note&gt;&lt;para&gt;
This function will terminate your program if it was unable to initialize
GStreamer for some reason.  If you want your program to fall back,
use gst_init_check() instead.
&lt;/para&gt;&lt;/note&gt;

WARNING: This function does not work in the same way as corresponding
functions in other glib-style libraries, such as gtk_init().  In
particular, unknown command line options cause this function to
abort program execution.

</description>
<parameters>
<parameter name="argc">
<parameter_description> pointer to application's argc
</parameter_description>
</parameter>
<parameter name="argv">
<parameter_description> pointer to application's argv
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_init_check">
<description>
Initializes the GStreamer library, setting up internal path lists,
registering built-in elements, and loading standard plugins.

This function will return %FALSE if GStreamer could not be initialized
for some reason.  If you want your program to fail fatally,
use gst_init() instead.


</description>
<parameters>
<parameter name="argc">
<parameter_description> pointer to application's argc
</parameter_description>
</parameter>
<parameter name="argv">
<parameter_description> pointer to application's argv
</parameter_description>
</parameter>
<parameter name="err">
<parameter_description> pointer to a #GError to which a message will be posted on error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if GStreamer could be initialized.
</return>
</function>

<function name="gst_init_get_option_group">
<description>
Returns a #GOptionGroup with GStreamer's argument specifications. The
group is set up to use standard GOption callbacks, so when using this
group in combination with GOption parsing methods, all argument parsing
and initialization is automated.

This function is useful if you want to integrate GStreamer with other
libraries that use GOption (see g_option_context_add_group() ).

If you use this function, you should make sure you initialise the GLib
threading system as one of the very first things in your program
(see the example at the beginning of this section).


</description>
<parameters>
</parameters>
<return> a pointer to GStreamer's option group.
</return>
</function>

<function name="gst_install_plugins_async">
<description>
Requests plugin installation without blocking. Once the plugins have been
installed or installation has failed, @func will be called with the result
of the installation and your provided @user_data pointer.

This function requires a running GLib/Gtk main loop. If you are not
running a GLib/Gtk main loop, make sure to regularly call
g_main_context_iteration(NULL,FALSE).

The installer strings that make up @detail are typically obtained by
calling gst_missing_plugin_message_get_installer_detail() on missing-plugin
messages that have been caught on a pipeline's bus or created by the
application via the provided API, such as gst_missing_element_message_new().

It is possible to request the installation of multiple missing plugins in
one go (as might be required if there is a demuxer for a certain format
installed but no suitable video decoder and no suitable audio decoder).


</description>
<parameters>
<parameter name="details">
<parameter_description> NULL-terminated array
of installer string details (see below)
</parameter_description>
</parameter>
<parameter name="ctx">
<parameter_description> a #GstInstallPluginsContext, or NULL
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to call when the installer program returns
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> the user data to pass to @func when called, or NULL
</parameter_description>
</parameter>
</parameters>
<return> result code whether an external installer could be started
</return>
</function>

<function name="gst_install_plugins_context_free">
<description>
Frees a #GstInstallPluginsContext.

</description>
<parameters>
<parameter name="ctx">
<parameter_description> a #GstInstallPluginsContext
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_install_plugins_context_new">
<description>
Creates a new #GstInstallPluginsContext.


</description>
<parameters>
</parameters>
<return> a new #GstInstallPluginsContext. Free with
gst_install_plugins_context_free() when no longer needed
</return>
</function>

<function name="gst_install_plugins_context_set_xid">
<description>
This function is for X11-based applications (such as most Gtk/Qt
applications on linux/unix) only. You can use it to tell the external
installer the XID of your main application window. That way the installer
can make its own window transient to your application window during the
installation.

If set, the XID will be passed to the installer via a --transient-for=XID
command line option.

Gtk+/Gnome application should be able to obtain the XID of the top-level
window like this:
&lt;programlisting&gt;
##include &lt;gtk/gtk.h&gt;
##ifdef GDK_WINDOWING_X11
##include &lt;gdk/gdkx.h&gt;
##endif
...
##ifdef GDK_WINDOWING_X11
xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&gt;window);
##endif
...
&lt;/programlisting&gt;

</description>
<parameters>
<parameter name="ctx">
<parameter_description> a #GstInstallPluginsContext
</parameter_description>
</parameter>
<parameter name="xid">
<parameter_description> the XWindow ID (XID) of the top-level application
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_install_plugins_installation_in_progress">
<description>
Checks whether plugin installation (initiated by this application only)
is currently in progress.


</description>
<parameters>
</parameters>
<return> TRUE if plugin installation is in progress, otherwise FALSE
</return>
</function>

<function name="gst_install_plugins_return_get_name">
<description>
Convenience function to return the descriptive string associated
with a status code.  This function returns English strings and
should not be used for user messages. It is here only to assist
in debugging.


</description>
<parameters>
<parameter name="ret">
<parameter_description> the return status code
</parameter_description>
</parameter>
</parameters>
<return> a descriptive string for the status code in @ret
</return>
</function>

<function name="gst_install_plugins_supported">
<description>
Checks whether plugin installation is likely to be supported by the
current environment. This currently only checks whether the helper script
that is to be provided by the distribution or operating system vendor
exists.


</description>
<parameters>
</parameters>
<return> TRUE if plugin installation is likely to be supported.
</return>
</function>

<function name="gst_install_plugins_sync">
<description>
Requests plugin installation and block until the plugins have been
installed or installation has failed.

This function should almost never be used, it only exists for cases where
a non-GLib main loop is running and the user wants to run it in a separate
thread and marshal the result back asynchronously into the main thread
using the other non-GLib main loop. You should almost always use
gst_install_plugins_async() instead of this function.


</description>
<parameters>
<parameter name="details">
<parameter_description> NULL-terminated array
of installer string details
</parameter_description>
</parameter>
<parameter name="ctx">
<parameter_description> a #GstInstallPluginsContext, or NULL
</parameter_description>
</parameter>
</parameters>
<return> the result of the installation.
</return>
</function>

<function name="gst_interpolation_control_source_new">
<description>
This returns a new, unbound #GstInterpolationControlSource.


</description>
<parameters>
</parameters>
<return> a new, unbound #GstInterpolationControlSource.
</return>
</function>

<function name="gst_is_dmabuf_memory">
<description>
Check if @mem is dmabuf memory.


</description>
<parameters>
<parameter name="mem">
<parameter_description> the memory to be check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @mem is dmabuf memory, otherwise %FALSE

</return>
</function>

<function name="gst_is_initialized">
<description>
Use this function to check if GStreamer has been initialized with gst_init()
or gst_init_check().


</description>
<parameters>
</parameters>
<return> TRUE if initialization has been done, FALSE otherwise.
</return>
</function>

<function name="gst_is_missing_plugin_message">
<description>
Checks whether @msg is a missing plugins message.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstMessage
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @msg is a missing-plugins message, otherwise %FALSE.
</return>
</function>

<function name="gst_is_video_overlay_prepare_window_handle_message">
<description>
Convenience function to check if the given message is a
&quot;prepare-window-handle&quot; message from a #GstVideoOverlay.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstMessage
</parameter_description>
</parameter>
</parameters>
<return> whether @msg is a &quot;prepare-window-handle&quot; message
</return>
</function>

<function name="gst_iterator_copy">
<description>
Copy the iterator and its state.


</description>
<parameters>
<parameter name="it">
<parameter_description> a #GstIterator
</parameter_description>
</parameter>
</parameters>
<return> a new copy of @it.
</return>
</function>

<function name="gst_iterator_filter">
<description>
Create a new iterator from an existing iterator. The new iterator
will only return those elements that match the given compare function @func.
The first parameter that is passed to @func is the #GValue of the current
iterator element and the second parameter is @user_data. @func should
return 0 for elements that should be included in the filtered iterator.

When this iterator is freed, @it will also be freed.


</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to filter
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the compare function to select elements
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the compare function
</parameter_description>
</parameter>
</parameters>
<return> a new #GstIterator.

MT safe.
</return>
</function>

<function name="gst_iterator_find_custom">
<description>
Find the first element in @it that matches the compare function @func.
@func should return 0 when the element is found. The first parameter
to @func will be the current element of the iterator and the
second parameter will be @user_data.
The result will be stored in @elem if a result is found.

The iterator will not be freed.

This function will return FALSE if an error happened to the iterator
or if the element wasn't found.


</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to iterate
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the compare function to use
</parameter_description>
</parameter>
<parameter name="elem">
<parameter_description> pointer to a #GValue where to store the result
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the compare function
</parameter_description>
</parameter>
</parameters>
<return> Returns TRUE if the element was found, else FALSE.

MT safe.
</return>
</function>

<function name="gst_iterator_fold">
<description>
Folds @func over the elements of @iter. That is to say, @func will be called
as @func (object, @ret, @user_data) for each object in @it. The normal use
of this procedure is to accumulate the results of operating on the objects in
@ret.

This procedure can be used (and is used internally) to implement the
gst_iterator_foreach() and gst_iterator_find_custom() operations.

The fold will proceed as long as @func returns TRUE. When the iterator has no
more arguments, %GST_ITERATOR_DONE will be returned. If @func returns FALSE,
the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
appropriate.

The iterator will not be freed.


</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to fold over
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the fold function
</parameter_description>
</parameter>
<parameter name="ret">
<parameter_description> the seed value passed to the fold function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the fold function
</parameter_description>
</parameter>
</parameters>
<return> A #GstIteratorResult, as described above.

MT safe.
</return>
</function>

<function name="gst_iterator_foreach">
<description>
Iterate over all element of @it and call the given function @func for
each element.


</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to iterate
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to call for each element.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the function
</parameter_description>
</parameter>
</parameters>
<return> the result call to gst_iterator_fold(). The iterator will not be
freed.

MT safe.
</return>
</function>

<function name="gst_iterator_free">
<description>
Free the iterator.

MT safe.

</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to free
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_iterator_new">
<description>
Create a new iterator. This function is mainly used for objects
implementing the next/resync/free function to iterate a data structure.

For each item retrieved, the @item function is called with the lock
held. The @free function is called when the iterator is freed.


</description>
<parameters>
<parameter name="size">
<parameter_description> the size of the iterator structure
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> #GType of children
</parameter_description>
</parameter>
<parameter name="lock">
<parameter_description> pointer to a #GMutex.
</parameter_description>
</parameter>
<parameter name="master_cookie">
<parameter_description> pointer to a guint32 that is changed when the items in the
iterator changed.
</parameter_description>
</parameter>
<parameter name="copy">
<parameter_description> copy function
</parameter_description>
</parameter>
<parameter name="next">
<parameter_description> function to get next item
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> function to call on each item retrieved
</parameter_description>
</parameter>
<parameter name="resync">
<parameter_description> function to resync the iterator
</parameter_description>
</parameter>
<parameter name="free">
<parameter_description> function to free the iterator
</parameter_description>
</parameter>
</parameters>
<return> the new #GstIterator.

MT safe.
</return>
</function>

<function name="gst_iterator_new_list">
<description>
Create a new iterator designed for iterating @list.

The list you iterate is usually part of a data structure @owner and is
protected with @lock. 

The iterator will use @lock to retrieve the next item of the list and it
will then call the @item function before releasing @lock again.

When a concurrent update to the list is performed, usually by @owner while
holding @lock, @master_cookie will be updated. The iterator implementation
will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
the user of the iterator in the next call to gst_iterator_next().


</description>
<parameters>
<parameter name="type">
<parameter_description> #GType of elements
</parameter_description>
</parameter>
<parameter name="lock">
<parameter_description> pointer to a #GMutex protecting the list.
</parameter_description>
</parameter>
<parameter name="master_cookie">
<parameter_description> pointer to a guint32 that is incremented when the list
is changed.
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> pointer to the list
</parameter_description>
</parameter>
<parameter name="owner">
<parameter_description> object owning the list
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> function to call on each item retrieved
</parameter_description>
</parameter>
</parameters>
<return> the new #GstIterator for @list.

MT safe.
</return>
</function>

<function name="gst_iterator_new_single">
<description>
This #GstIterator is a convenient iterator for the common
case where a #GstIterator needs to be returned but only
a single object has to be considered. This happens often
for the #GstPadIterIntLinkFunction.


</description>
<parameters>
<parameter name="type">
<parameter_description> #GType of the passed object
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> object that this iterator should return
</parameter_description>
</parameter>
</parameters>
<return> the new #GstIterator for @object.
</return>
</function>

<function name="gst_iterator_next">
<description>
Get the next item from the iterator in @elem. 

Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
value. @elem must have been initialized to the type of the iterator or
initialized to zeroes with g_value_unset(). The caller is responsible for
unsetting or resetting @elem with g_value_unset() or g_value_reset()
after usage.

When this function returns %GST_ITERATOR_DONE, no more elements can be
retrieved from @it.

A return value of %GST_ITERATOR_RESYNC indicates that the element list was
concurrently updated. The user of @it should call gst_iterator_resync() to
get the newly updated list. 

A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.


</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to iterate
</parameter_description>
</parameter>
<parameter name="elem">
<parameter_description> pointer to hold next element
</parameter_description>
</parameter>
</parameters>
<return> The result of the iteration. Unset @elem after usage.

MT safe.
</return>
</function>

<function name="gst_iterator_push">
<description>
Pushes @other iterator onto @it. All calls performed on @it are
forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
popped again and calls are handled by @it again.

This function is mainly used by objects implementing the iterator
next function to recurse into substructures.

When gst_iterator_resync() is called on @it, @other will automatically be
popped.

MT safe.

</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to use
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> The #GstIterator to push
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_iterator_resync">
<description>
Resync the iterator. this function is mostly called
after gst_iterator_next() returned %GST_ITERATOR_RESYNC.

When an iterator was pushed on @it, it will automatically be popped again
with this function.

MT safe.

</description>
<parameters>
<parameter name="it">
<parameter_description> The #GstIterator to resync
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_lfo_control_source_new">
<description>
This returns a new, unbound #GstLFOControlSource.


</description>
<parameters>
</parameters>
<return> a new, unbound #GstLFOControlSource.
</return>
</function>

<function name="gst_memory_alignment">
<description>
The default memory alignment in bytes - 1
an alignment of 7 would be the same as what malloc() guarantees.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_memory_copy">
<description>
Return a copy of @size bytes from @mem starting from @offset. This copy is
guaranteed to be writable. @size can be set to -1 to return a copy all bytes
from @offset.


</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> an offset to copy
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size to copy or -1 to copy all bytes from offset
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMemory.
</return>
</function>

<function name="gst_memory_get_sizes">
<description>
Get the current @size, @offset and @maxsize of @mem.


</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> pointer to offset
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> pointer to maxsize
</parameter_description>
</parameter>
</parameters>
<return> the current sizes of @mem
</return>
</function>

<function name="gst_memory_init">
<description>
Initializes a newly allocated @mem with the given parameters. This function
will call gst_mini_object_init() with the default memory parameters.

</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstMemoryFlags
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the #GstAllocator
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @mem
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> the total size of the memory
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> the alignment of the memory
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> The offset in the memory
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of valid data in the memory
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_memory_is_span">
<description>
Check if @mem1 and mem2 share the memory with a common parent memory object
and that the memory is contiguous.

If this is the case, the memory of @mem1 and @mem2 can be merged
efficiently by performing gst_memory_share() on the parent object from
the returned @offset.


</description>
<parameters>
<parameter name="mem1">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="mem2">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> a pointer to a result offset
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the memory is contiguous and of a common parent.
</return>
</function>

<function name="gst_memory_is_type">
<description>
Check if @mem if allocated with an allocator for @mem_type.


</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="mem_type">
<parameter_description> a memory type
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @mem was allocated from an allocator for @mem_type.

</return>
</function>

<function name="gst_memory_make_mapped">
<description>
Create a #GstMemory object that is mapped with @flags. If @mem is mappable
with @flags, this function returns the mapped @mem directly. Otherwise a
mapped copy of @mem is returned.

This function takes ownership of old @mem and returns a reference to a new
#GstMemory.


</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> pointer for info
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> mapping flags
</parameter_description>
</parameter>
</parameters>
<return> a #GstMemory object mapped with @flags or NULL when
a mapping is not possible.
</return>
</function>

<function name="gst_memory_map">
<description>
Fill @info with the pointer and sizes of the memory in @mem that can be
accessed according to @flags.

This function can return %FALSE for various reasons:
- the memory backed by @mem is not accessible with the given @flags.
- the memory was already mapped with a different mapping.

@info and its contents remain valid for as long as @mem is valid and
until gst_memory_unmap() is called.

For each gst_memory_map() call, a corresponding gst_memory_unmap() call
should be done.


</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> pointer for info
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> mapping flags
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the map operation was successful.
</return>
</function>

<function name="gst_memory_new_wrapped">
<description>
Allocate a new memory block that wraps the given @data.

The prefix/padding must be filled with 0 if @flags contains
#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.


</description>
<parameters>
<parameter name="flags">
<parameter_description> #GstMemoryFlags
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to
wrap
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> allocated size of @data
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset in @data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of valid data
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> called with @user_data when the memory is freed
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMemory.
</return>
</function>

<function name="gst_memory_ref">
<description>
Increase the refcount of this memory.


</description>
<parameters>
<parameter name="memory">
<parameter_description> The memory to refcount
</parameter_description>
</parameter>
</parameters>
<return> @memory (for convenience when doing assignments)
</return>
</function>

<function name="gst_memory_resize">
<description>
Resize the memory region. @mem should be writable and offset + size should be
less than the maxsize of @mem.

#GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED will be
cleared when offset or padding is increased respectively.

</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> a new offset
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> a new size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_memory_share">
<description>
Return a shared copy of @size bytes from @mem starting from @offset. No
memory copy is performed and the memory region is simply shared. The result
is guaranteed to be not-writable. @size can be set to -1 to return a share
all bytes from @offset.


</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> an offset to share
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size to share or -1 to share bytes from offset
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMemory.
</return>
</function>

<function name="gst_memory_unmap">
<description>
Release the memory obtained with gst_memory_map()

</description>
<parameters>
<parameter name="mem">
<parameter_description> a #GstMemory
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstMapInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_memory_unref">
<description>
Decrease the refcount of an memory, freeing it if the refcount reaches 0.

</description>
<parameters>
<parameter name="memory">
<parameter_description> the memory to refcount
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_add_context_type">
<description>
Add a new context type to @message.

</description>
<parameters>
<parameter name="message">
<parameter_description> a GST_MESSAGE_NEED_CONTEXT type message
</parameter_description>
</parameter>
<parameter name="context_type">
<parameter_description> a context type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_copy">
<description>
Creates a copy of the message. Returns a copy of the message.


</description>
<parameters>
<parameter name="msg">
<parameter_description> the message to copy
</parameter_description>
</parameter>
</parameters>
<return> a new copy of @msg.

MT safe
</return>
</function>

<function name="gst_message_get_n_context_types">
<description>
Retrieve the number of values currently stored in the
context-types array of the message's structure.


</description>
<parameters>
<parameter name="message">
<parameter_description> a GST_MESSAGE_NEED_CONTEXT type message
</parameter_description>
</parameter>
</parameters>
<return> the context-types array size as a #guint.
</return>
</function>

<function name="gst_message_get_seqnum">
<description>
Retrieve the sequence number of a message.

Messages have ever-incrementing sequence numbers, which may also be set
explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
to indicate that a message corresponds to some other set of messages or
events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
is considered good practice to make this correspondence when possible, though
it is not required.

Note that events and messages share the same sequence number incrementor;
two events or messages will never have the same sequence number unless
that correspondence was made explicitly.


</description>
<parameters>
<parameter name="message">
<parameter_description> A #GstMessage.
</parameter_description>
</parameter>
</parameters>
<return> The message's sequence number.

MT safe.
</return>
</function>

<function name="gst_message_get_stream_status_object">
<description>
Extracts the object managing the streaming thread from @message.


</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.
</parameter_description>
</parameter>
</parameters>
<return> a GValue containing the object that manages the streaming thread.
This object is usually of type GstTask but other types can be added in the
future. The object remains valid as long as @message is valid.
</return>
</function>

<function name="gst_message_get_structure">
<description>
Access the structure of the message.


</description>
<parameters>
<parameter name="message">
<parameter_description> The #GstMessage.
</parameter_description>
</parameter>
</parameters>
<return> The structure of the message. The structure is
still owned by the message, which means that you should not free it and
that the pointer becomes invalid when you free the message.

MT safe.
</return>
</function>

<function name="gst_message_has_name">
<description>
Checks if @message has the given @name. This function is usually used to
check the name of a custom message.


</description>
<parameters>
<parameter name="message">
<parameter_description> The #GstMessage.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @name matches the name of the message structure.
</return>
</function>

<function name="gst_message_is_writable">
<description>
Tests if you can safely write into a message's structure or validly
modify the seqnum and timestamp fields.

</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstMessage
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_make_writable">
<description>
Checks if a message is writable. If not, a writable copy is made and
returned.


</description>
<parameters>
<parameter name="msg">
<parameter_description> the message to make writable
</parameter_description>
</parameter>
</parameters>
<return> a message (possibly a duplicate) that is writable.

MT safe
</return>
</function>

<function name="gst_message_new_application">
<description>
Create a new application-typed message. GStreamer will never create these
messages; they are a gift from us to you. Enjoy.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message.
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the structure for the message. The message
will take ownership of the structure.
</parameter_description>
</parameter>
</parameters>
<return> The new application message.

MT safe.
</return>
</function>

<function name="gst_message_new_async_done">
<description>
The message is posted when elements completed an ASYNC state change.
@running_time contains the time of the desired running_time when this
elements goes to PLAYING. A value of #GST_CLOCK_TIME_NONE for @running_time
means that the element has no clock interaction and thus doesn't care about
the running_time of the pipeline.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> the desired running_time
</parameter_description>
</parameter>
</parameters>
<return> The new async_done message.

MT safe.
</return>
</function>

<function name="gst_message_new_async_start">
<description>
This message is posted by elements when they start an ASYNC state change.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
</parameters>
<return> The new async_start message.

MT safe.
</return>
</function>

<function name="gst_message_new_buffering">
<description>
Create a new buffering message. This message can be posted by an element that
needs to buffer data before it can continue processing. @percent should be a
value between 0 and 100. A value of 100 means that the buffering completed.

When @percent is &lt; 100 the application should PAUSE a PLAYING pipeline. When
@percent is 100, the application can set the pipeline (back) to PLAYING.
The application must be prepared to receive BUFFERING messages in the
PREROLLING state and may only set the pipeline to PLAYING after receiving a
message with @percent set to 100, which can happen after the pipeline
completed prerolling.

MT safe.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="percent">
<parameter_description> The buffering percent
</parameter_description>
</parameter>
</parameters>
<return> The new buffering message.
</return>
</function>

<function name="gst_message_new_clock_lost">
<description>
Create a clock lost message. This message is posted whenever the
clock is not valid anymore.

If this message is posted by the pipeline, the pipeline will
select a new clock again when it goes to PLAYING. It might therefore
be needed to set the pipeline to PAUSED and PLAYING again.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message.
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> the clock that was lost
</parameter_description>
</parameter>
</parameters>
<return> The new clock lost message.

MT safe.
</return>
</function>

<function name="gst_message_new_clock_provide">
<description>
Create a clock provide message. This message is posted whenever an
element is ready to provide a clock or lost its ability to provide
a clock (maybe because it paused or became EOS).

This message is mainly used internally to manage the clock
selection.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message.
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> the clock it provides
</parameter_description>
</parameter>
<parameter name="ready">
<parameter_description> TRUE if the sender can provide a clock
</parameter_description>
</parameter>
</parameters>
<return> the new provide clock message.

MT safe.
</return>
</function>

<function name="gst_message_new_custom">
<description>
Create a new custom-typed message. This can be used for anything not
handled by other message-specific functions to pass a message to the
app. The structure field can be NULL.


</description>
<parameters>
<parameter name="type">
<parameter_description> The #GstMessageType to distinguish messages
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the structure for the message. The message
will take ownership of the structure.
</parameter_description>
</parameter>
</parameters>
<return> The new message.

MT safe.
</return>
</function>

<function name="gst_message_new_duration_changed">
<description>
Create a new duration changed message. This message is posted by elements
that know the duration of a stream when the duration changes. This message
is received by bins and is used to calculate the total duration of a
pipeline. Elements may post a duration message with a duration of
GST_CLOCK_TIME_NONE to indicate that the duration has changed and the 
cached duration should be discarded. The new duration can then be 
retrieved via a query.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
</parameters>
<return> The new duration-changed message.

MT safe.
</return>
</function>

<function name="gst_message_new_element">
<description>
Create a new element-specific message. This is meant as a generic way of
allowing one-way communication from an element to an application, for example
&quot;the firewire cable was unplugged&quot;. The format of the message should be
documented in the element's documentation. The structure field can be NULL.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> The structure for the message. The message
will take ownership of the structure.
</parameter_description>
</parameter>
</parameters>
<return> The new element message.

MT safe.
</return>
</function>

<function name="gst_message_new_eos">
<description>
Create a new eos message. This message is generated and posted in
the sink elements of a GstBin. The bin will only forward the EOS
message to the application if all sinks have posted an EOS message.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
</parameters>
<return> The new eos message.

MT safe.
</return>
</function>

<function name="gst_message_new_error">
<description>
Create a new error message. The message will copy @error and
@debug. This message is posted by element when a fatal event
occured. The pipeline will probably (partially) stop. The application
receiving this message should stop the pipeline.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> The GError for this message.
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> A debugging string.
</parameter_description>
</parameter>
</parameters>
<return> the new error message.

MT safe.
</return>
</function>

<function name="gst_message_new_have_context">
<description>
This message is posted when an element has a new local #GstContext.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the context
</parameter_description>
</parameter>
</parameters>
<return> The new have-context message.

MT safe.
</return>
</function>

<function name="gst_message_new_info">
<description>
Create a new info message. The message will make copies of @error and
@debug.

MT safe.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> The GError for this message.
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> A debugging string.
</parameter_description>
</parameter>
</parameters>
<return> the new info message.
</return>
</function>

<function name="gst_message_new_latency">
<description>
This message can be posted by elements when their latency requirements have
changed.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
</parameters>
<return> The new latency message.

MT safe.
</return>
</function>

<function name="gst_message_new_need_context">
<description>
This message is posted when an element needs a specific #GstContext.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
</parameters>
<return> The new need-context message.

MT safe.
</return>
</function>

<function name="gst_message_new_new_clock">
<description>
Create a new clock message. This message is posted whenever the
pipeline selectes a new clock for the pipeline.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> the new selected clock
</parameter_description>
</parameter>
</parameters>
<return> The new new clock message.

MT safe.
</return>
</function>

<function name="gst_message_new_progress">
<description>
Progress messages are posted by elements when they use an asynchronous task
to perform actions triggered by a state change.

@code contains a well defined string describing the action.
@test should contain a user visible string detailing the current action.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GstProgressType
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> a progress code
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> free, user visible text describing the progress
</parameter_description>
</parameter>
</parameters>
<return> The new qos message.
</return>
</function>

<function name="gst_message_new_qos">
<description>
A QOS message is posted on the bus whenever an element decides to drop a
buffer because of QoS reasons or whenever it changes its processing strategy
because of QoS reasons (quality adjustments such as processing at lower
accuracy).

This message can be posted by an element that performs synchronisation against the
clock (live) or it could be dropped by an element that performs QoS because of QOS
events received from a downstream element (!live).

@running_time, @stream_time, @timestamp, @duration should be set to the
respective running-time, stream-time, timestamp and duration of the (dropped)
buffer that generated the QoS event. Values can be left to
GST_CLOCK_TIME_NONE when unknown.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="live">
<parameter_description> if the message was generated by a live element
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> the running time of the buffer that generated the message
</parameter_description>
</parameter>
<parameter name="stream_time">
<parameter_description> the stream time of the buffer that generated the message
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the timestamps of the buffer that generated the message
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the buffer that generated the message
</parameter_description>
</parameter>
</parameters>
<return> The new qos message.

MT safe.
</return>
</function>

<function name="gst_message_new_request_state">
<description>
This message can be posted by elements when they want to have their state
changed. A typical use case would be an audio server that wants to pause the
pipeline because a higher priority stream is being played.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message.
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> The new requested state
</parameter_description>
</parameter>
</parameters>
<return> the new requst state message.

MT safe.
</return>
</function>

<function name="gst_message_new_reset_time">
<description>
This message is posted when the pipeline running-time should be reset to
@running_time, like after a flushing seek.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> the requested running-time
</parameter_description>
</parameter>
</parameters>
<return> The new reset_time message.

MT safe.
</return>
</function>

<function name="gst_message_new_segment_done">
<description>
Create a new segment done message. This message is posted by elements that
finish playback of a segment as a result of a segment seek. This message
is received by the application after all elements that posted a segment_start
have posted the segment_done.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The format of the position being done
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The position of the segment being done
</parameter_description>
</parameter>
</parameters>
<return> the new segment done message.

MT safe.
</return>
</function>

<function name="gst_message_new_segment_start">
<description>
Create a new segment message. This message is posted by elements that
start playback of a segment as a result of a segment seek. This message
is not received by the application but is used for maintenance reasons in
container elements.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> The format of the position being played
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The position of the segment being played
</parameter_description>
</parameter>
</parameters>
<return> the new segment start message.

MT safe.
</return>
</function>

<function name="gst_message_new_state_changed">
<description>
Create a state change message. This message is posted whenever an element
changed its state.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message
</parameter_description>
</parameter>
<parameter name="oldstate">
<parameter_description> the previous state
</parameter_description>
</parameter>
<parameter name="newstate">
<parameter_description> the new (current) state
</parameter_description>
</parameter>
<parameter name="pending">
<parameter_description> the pending (target) state
</parameter_description>
</parameter>
</parameters>
<return> the new state change message.

MT safe.
</return>
</function>

<function name="gst_message_new_state_dirty">
<description>
Create a state dirty message. This message is posted whenever an element
changed its state asynchronously and is used internally to update the
states of container objects.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message
</parameter_description>
</parameter>
</parameters>
<return> the new state dirty message.

MT safe.
</return>
</function>

<function name="gst_message_new_step_done">
<description>
This message is posted by elements when they complete a part, when @intermediate set
to TRUE, or a complete step operation.

@duration will contain the amount of time (in GST_FORMAT_TIME) of the stepped
@amount of media in format @format.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of @amount
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> the amount of stepped data
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> the rate of the stepped amount
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> is this an flushing step
</parameter_description>
</parameter>
<parameter name="intermediate">
<parameter_description> is this an intermediate step
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the data
</parameter_description>
</parameter>
<parameter name="eos">
<parameter_description> the step caused EOS
</parameter_description>
</parameter>
</parameters>
<return> the new step_done message.

MT safe.
</return>
</function>

<function name="gst_message_new_step_start">
<description>
This message is posted by elements when they accept or activate a new step
event for @amount in @format. 

@active is set to FALSE when the element accepted the new step event and has
queued it for execution in the streaming threads.

@active is set to TRUE when the element has activated the step operation and
is now ready to start executing the step in the streaming thread. After this
message is emited, the application can queue a new step operation in the
element.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> if the step is active or queued
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of @amount
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> the amount of stepped data
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> the rate of the stepped amount
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> is this an flushing step
</parameter_description>
</parameter>
<parameter name="intermediate">
<parameter_description> is this an intermediate step
</parameter_description>
</parameter>
</parameters>
<return> The new step_start message. 

MT safe.
</return>
</function>

<function name="gst_message_new_stream_start">
<description>
Create a new stream_start message. This message is generated and posted in
the sink elements of a GstBin. The bin will only forward the STREAM_START
message to the application if all sinks have posted an STREAM_START message.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
</parameters>
<return> The new stream_start message.

MT safe.
</return>
</function>

<function name="gst_message_new_stream_status">
<description>
Create a new stream status message. This message is posted when a streaming
thread is created/destroyed or when the state changed.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> The stream status type.
</parameter_description>
</parameter>
<parameter name="owner">
<parameter_description> the owner element of @src.
</parameter_description>
</parameter>
</parameters>
<return> the new stream status message.

MT safe.
</return>
</function>

<function name="gst_message_new_structure_change">
<description>
Create a new structure change message. This message is posted when the
structure of a pipeline is in the process of being changed, for example
when pads are linked or unlinked.

@src should be the sinkpad that unlinked or linked.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> The change type.
</parameter_description>
</parameter>
<parameter name="owner">
<parameter_description> The owner element of @src.
</parameter_description>
</parameter>
<parameter name="busy">
<parameter_description> Whether the structure change is busy.
</parameter_description>
</parameter>
</parameters>
<return> the new structure change message.

MT safe.
</return>
</function>

<function name="gst_message_new_tag">
<description>
Create a new tag message. The message will take ownership of the tag list.
The message is posted by elements that discovered a new taglist.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="tag_list">
<parameter_description> the tag list for the message.
</parameter_description>
</parameter>
</parameters>
<return> the new tag message.

MT safe.
</return>
</function>

<function name="gst_message_new_toc">
<description>
Create a new TOC message. The message is posted by elements
that discovered or updated a TOC.


</description>
<parameters>
<parameter name="src">
<parameter_description> the object originating the message.
</parameter_description>
</parameter>
<parameter name="toc">
<parameter_description> #GstToc structure for the message.
</parameter_description>
</parameter>
<parameter name="updated">
<parameter_description> whether TOC was updated or not.
</parameter_description>
</parameter>
</parameters>
<return> a new TOC message.

MT safe.
</return>
</function>

<function name="gst_message_new_warning">
<description>
Create a new warning message. The message will make copies of @error and
@debug.


</description>
<parameters>
<parameter name="src">
<parameter_description> The object originating the message.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> The GError for this message.
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> A debugging string.
</parameter_description>
</parameter>
</parameters>
<return> The new warning message.

MT safe.
</return>
</function>

<function name="gst_message_parse_async_done">
<description>
Extract the running_time from the async_done message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_ASYNC_DONE.
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> Result location for the running_time or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_buffering">
<description>
Extracts the buffering percent from the GstMessage. see also
gst_message_new_buffering().

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_BUFFERING.
</parameter_description>
</parameter>
<parameter name="percent">
<parameter_description> Return location for the percent.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_buffering_stats">
<description>
Extracts the buffering stats values from @message.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_BUFFERING.
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a buffering mode, or NULL
</parameter_description>
</parameter>
<parameter name="avg_in">
<parameter_description> the average input rate, or NULL
</parameter_description>
</parameter>
<parameter name="avg_out">
<parameter_description> the average output rate, or NULL
</parameter_description>
</parameter>
<parameter name="buffering_left">
<parameter_description> amount of buffering time left in
milliseconds, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_clock_lost">
<description>
Extracts the lost clock from the GstMessage.
The clock object returned remains valid until the message is freed.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_CLOCK_LOST.
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> a pointer to hold the lost clock
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_clock_provide">
<description>
Extracts the clock and ready flag from the GstMessage.
The clock object returned remains valid until the message is freed.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_CLOCK_PROVIDE.
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> a pointer to  hold a clock
object, or NULL
</parameter_description>
</parameter>
<parameter name="ready">
<parameter_description> a pointer to hold the ready flag, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_error">
<description>
Extracts the GError and debug string from the GstMessage. The values returned
in the output arguments are copies; the caller must free them when done.

Typical usage of this function might be:
|[
...
switch (GST_MESSAGE_TYPE (msg)) {
case GST_MESSAGE_ERROR: {
GError *err = NULL;
gchar *dbg_info = NULL;

gst_message_parse_error (msg, &amp;err, &amp;dbg_info);
g_printerr (&quot;ERROR from element %s: %s\n&quot;,
GST_OBJECT_NAME (msg-&gt;src), err-&gt;message);
g_printerr (&quot;Debugging info: %s\n&quot;, (dbg_info) ? dbg_info : &quot;none&quot;);
g_error_free (err);
g_free (dbg_info);
break;
}
...
}
...
]|

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_ERROR.
</parameter_description>
</parameter>
<parameter name="gerror">
<parameter_description> location for the GError
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> location for the debug message,
or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_have_context">
<description>
Extract the context from the HAVE_CONTEXT message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_HAVE_CONTEXT.
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> Result location for the context or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_info">
<description>
Extracts the GError and debug string from the GstMessage. The values returned
in the output arguments are copies; the caller must free them when done.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_INFO.
</parameter_description>
</parameter>
<parameter name="gerror">
<parameter_description> location for the GError
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> location for the debug message,
or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_new_clock">
<description>
Extracts the new clock from the GstMessage.
The clock object returned remains valid until the message is freed.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_NEW_CLOCK.
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> a pointer to hold the selected
new clock
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_nth_context_type">
<description>
Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message
from @index.


</description>
<parameters>
<parameter name="message">
<parameter_description> a GST_MESSAGE_NEED_CONTEXT type message
</parameter_description>
</parameter>
<parameter name="context_type">
<parameter_description> the context type, or NULL
</parameter_description>
</parameter>
</parameters>
<return> a #gboolean indicating if the parsing succeeded.
</return>
</function>

<function name="gst_message_parse_progress">
<description>
Parses the progress @type, @code and @text.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_PROGRESS.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> location for the type
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> location for the code
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> location for the text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_qos">
<description>
Extract the timestamps and live status from the QoS message.

The returned values give the running_time, stream_time, timestamp and
duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
values.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_QOS.
</parameter_description>
</parameter>
<parameter name="live">
<parameter_description> if the message was generated by a live element
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> the running time of the buffer that
generated the message
</parameter_description>
</parameter>
<parameter name="stream_time">
<parameter_description> the stream time of the buffer that
generated the message
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the timestamps of the buffer that
generated the message
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the buffer that
generated the message
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_qos_stats">
<description>
Extract the QoS stats representing the history of the current continuous
pipeline playback period.

When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
invalid. Values of -1 for either @processed or @dropped mean unknown values.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_QOS.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> Units of the 'processed' and 'dropped' fields.
Video sinks and video filters will use GST_FORMAT_BUFFERS (frames).
Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT
(samples).
</parameter_description>
</parameter>
<parameter name="processed">
<parameter_description> Total number of units correctly processed
since the last state change to READY or a flushing operation.
</parameter_description>
</parameter>
<parameter name="dropped">
<parameter_description> Total number of units dropped since the last
state change to READY or a flushing operation.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_qos_values">
<description>
Extract the QoS values that have been calculated/analysed from the QoS data

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_QOS.
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> The difference of the running-time against
the deadline.
</parameter_description>
</parameter>
<parameter name="proportion">
<parameter_description> Long term prediction of the ideal rate
relative to normal rate to get optimal quality.
</parameter_description>
</parameter>
<parameter name="quality">
<parameter_description> An element dependent integer value that
specifies the current quality level of the element. The default
maximum quality is 1000000.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_request_state">
<description>
Extract the requested state from the request_state message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_REQUEST_STATE.
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> Result location for the requested state or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_reset_time">
<description>
Extract the running-time from the RESET_TIME message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_RESET_TIME.
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> Result location for the running_time or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_segment_done">
<description>
Extracts the position and format from the segment done message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_SEGMENT_DONE.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> Result location for the format, or NULL
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> Result location for the position, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_segment_start">
<description>
Extracts the position and format from the segment start message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_SEGMENT_START.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> Result location for the format, or NULL
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> Result location for the position, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_state_changed">
<description>
Extracts the old and new states from the GstMessage.

Typical usage of this function might be:
|[
...
switch (GST_MESSAGE_TYPE (msg)) {
case GST_MESSAGE_STATE_CHANGED: {
GstState old_state, new_state;

gst_message_parse_state_changed (msg, &amp;old_state, &amp;new_state, NULL);
g_print (&quot;Element %s changed state from %s to %s.\n&quot;,
GST_OBJECT_NAME (msg-&gt;src),
gst_element_state_get_name (old_state),
gst_element_state_get_name (new_state));
break;
}
...
}
...
]|

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> a valid #GstMessage of type GST_MESSAGE_STATE_CHANGED
</parameter_description>
</parameter>
<parameter name="oldstate">
<parameter_description> the previous state, or NULL
</parameter_description>
</parameter>
<parameter name="newstate">
<parameter_description> the new (current) state, or NULL
</parameter_description>
</parameter>
<parameter name="pending">
<parameter_description> the pending (target) state, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_step_done">
<description>
Extract the values the step_done message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_STEP_DONE.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> result location for the format
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> result location for the amount
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> result location for the rate
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> result location for the flush flag
</parameter_description>
</parameter>
<parameter name="intermediate">
<parameter_description> result location for the intermediate flag
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> result location for the duration
</parameter_description>
</parameter>
<parameter name="eos">
<parameter_description> result location for the EOS flag
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_step_start">
<description>
Extract the values from step_start message.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_STEP_DONE.
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> result location for the active flag
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> result location for the format
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> result location for the amount
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> result location for the rate
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> result location for the flush flag
</parameter_description>
</parameter>
<parameter name="intermediate">
<parameter_description> result location for the intermediate flag
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_stream_status">
<description>
Extracts the stream status type and owner the GstMessage. The returned
owner remains valid for as long as the reference to @message is valid and
should thus not be unreffed.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> A pointer to hold the status type
</parameter_description>
</parameter>
<parameter name="owner">
<parameter_description> The owner element of the message source
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_structure_change">
<description>
Extracts the change type and completion status from the GstMessage.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_STRUCTURE_CHANGE.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> A pointer to hold the change type
</parameter_description>
</parameter>
<parameter name="owner">
<parameter_description> The owner element of the
message source
</parameter_description>
</parameter>
<parameter name="busy">
<parameter_description> a pointer to hold whether the change is in
progress or has been completed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_tag">
<description>
Extracts the tag list from the GstMessage. The tag list returned in the
output argument is a copy; the caller must free it when done.

Typical usage of this function might be:
|[
...
switch (GST_MESSAGE_TYPE (msg)) {
case GST_MESSAGE_TAG: {
GstTagList *tags = NULL;

gst_message_parse_tag (msg, &amp;tags);
g_print (&quot;Got tags from element %s\n&quot;, GST_OBJECT_NAME (msg-&gt;src));
handle_tags (tags);
gst_tag_list_unref (tags);
break;
}
...
}
...
]|

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_TAG.
</parameter_description>
</parameter>
<parameter name="tag_list">
<parameter_description> return location for the tag-list.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_toc">
<description>
Extract thef TOC from the #GstMessage. The TOC returned in the
output argument is a copy; the caller must free it with
gst_toc_unref() when done.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> a valid #GstMessage of type GST_MESSAGE_TOC.
</parameter_description>
</parameter>
<parameter name="toc">
<parameter_description> return location for the TOC.
</parameter_description>
</parameter>
<parameter name="updated">
<parameter_description> return location for the updated flag.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_parse_warning">
<description>
Extracts the GError and debug string from the GstMessage. The values returned
in the output arguments are copies; the caller must free them when done.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_WARNING.
</parameter_description>
</parameter>
<parameter name="gerror">
<parameter_description> location for the GError
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> location for the debug message,
or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_ref">
<description>
Convenience macro to increase the reference count of the message.


</description>
<parameters>
<parameter name="msg">
<parameter_description> the message to ref
</parameter_description>
</parameter>
</parameters>
<return> @msg (for convenience when doing assignments)
</return>
</function>

<function name="gst_message_replace">
<description>
Modifies a pointer to a #GstMessage to point to a different #GstMessage. The
modification is done atomically (so this is useful for ensuring thread safety
in some cases), and the reference counts are updated appropriately (the old
message is unreffed, the new one is reffed).

Either @new_message or the #GstMessage pointed to by @old_message may be NULL.


</description>
<parameters>
<parameter name="old_message">
<parameter_description> pointer to a pointer to a #GstMessage
to be replaced.
</parameter_description>
</parameter>
<parameter name="new_message">
<parameter_description> pointer to a #GstMessage that will
replace the message pointed to by @old_message.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @new_message was different from @old_message
</return>
</function>

<function name="gst_message_set_buffering_stats">
<description>
Configures the buffering stats values in @message.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_BUFFERING.
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a buffering mode 
</parameter_description>
</parameter>
<parameter name="avg_in">
<parameter_description> the average input rate
</parameter_description>
</parameter>
<parameter name="avg_out">
<parameter_description> the average output rate
</parameter_description>
</parameter>
<parameter name="buffering_left">
<parameter_description> amount of buffering time left in milliseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_set_qos_stats">
<description>
Set the QoS stats representing the history of the current continuous pipeline
playback period.

When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
invalid. Values of -1 for either @processed or @dropped mean unknown values.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_QOS.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> Units of the 'processed' and 'dropped' fields. Video sinks and video
filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
will likely use GST_FORMAT_DEFAULT (samples).
</parameter_description>
</parameter>
<parameter name="processed">
<parameter_description> Total number of units correctly processed since the last state
change to READY or a flushing operation.
</parameter_description>
</parameter>
<parameter name="dropped">
<parameter_description> Total number of units dropped since the last state change to READY
or a flushing operation.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_set_qos_values">
<description>
Set the QoS values that have been calculated/analysed from the QoS data

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_QOS.
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> The difference of the running-time against the deadline.
</parameter_description>
</parameter>
<parameter name="proportion">
<parameter_description> Long term prediction of the ideal rate relative to normal rate
to get optimal quality.
</parameter_description>
</parameter>
<parameter name="quality">
<parameter_description> An element dependent integer value that specifies the current
quality level of the element. The default maximum quality is 1000000.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_set_seqnum">
<description>
Set the sequence number of a message.

This function might be called by the creator of a message to indicate that
the message relates to other messages or events. See gst_message_get_seqnum()
for more information.

MT safe.

</description>
<parameters>
<parameter name="message">
<parameter_description> A #GstMessage.
</parameter_description>
</parameter>
<parameter name="seqnum">
<parameter_description> A sequence number.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_set_stream_status_object">
<description>
Configures the object handling the streaming thread. This is usually a
GstTask object but other objects might be added in the future.

</description>
<parameters>
<parameter name="message">
<parameter_description> A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the object controlling the streaming
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_message_type_get_name">
<description>
Get a printable name for the given message type. Do not modify or free.


</description>
<parameters>
<parameter name="type">
<parameter_description> the message type
</parameter_description>
</parameter>
</parameters>
<return> a reference to the static name of the message.
</return>
</function>

<function name="gst_message_type_to_quark">
<description>
Get the unique quark for the given message type.


</description>
<parameters>
<parameter name="type">
<parameter_description> the message type
</parameter_description>
</parameter>
</parameters>
<return> the quark associated with the message type
</return>
</function>

<function name="gst_message_unref">
<description>
Convenience macro to decrease the reference count of the message, possibly
freeing it.

</description>
<parameters>
<parameter name="msg">
<parameter_description> the message to unref
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_meta_api_type_has_tag">
<description>
Check if @api was registered with @tag.


</description>
<parameters>
<parameter name="api">
<parameter_description> an API
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> the tag to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @api was registered with @tag.
</return>
</function>

<function name="gst_meta_api_type_register">
<description>
Register and return a GType for the @api and associate it with
@tags.


</description>
<parameters>
<parameter name="api">
<parameter_description> an API to register
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> tags for @api
</parameter_description>
</parameter>
</parameters>
<return> a unique GType for @api.
</return>
</function>

<function name="gst_meta_get_info">
<description>
Lookup a previously registered meta info structure by its implementation name
@impl.


</description>
<parameters>
<parameter name="impl">
<parameter_description> the name
</parameter_description>
</parameter>
</parameters>
<return> a #GstMetaInfo with @impl, or #NULL when no such
metainfo exists.
</return>
</function>

<function name="gst_meta_register">
<description>
Register a new #GstMeta implementation.

The same @info can be retrieved later with gst_meta_get_info() by using
@impl as the key.


</description>
<parameters>
<parameter name="api">
<parameter_description> the type of the #GstMeta API
</parameter_description>
</parameter>
<parameter name="impl">
<parameter_description> the name of the #GstMeta implementation
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the #GstMeta structure
</parameter_description>
</parameter>
<parameter name="init_func">
<parameter_description> (scope async) a #GstMetaInitFunction
</parameter_description>
</parameter>
<parameter name="free_func">
<parameter_description> (scope async) a #GstMetaFreeFunction
</parameter_description>
</parameter>
<parameter name="transform_func">
<parameter_description> (scope async) a #GstMetaTransformFunction
</parameter_description>
</parameter>
</parameters>
<return> a #GstMetaInfo that can be used to access metadata.
</return>
</function>

<function name="gst_meta_transform_copy">
<description>
GQuark for the &quot;gst-copy&quot; transform.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_mini_object_copy">
<description>
Creates a copy of the mini-object.

MT safe


</description>
<parameters>
<parameter name="mini_object">
<parameter_description> the mini-object to copy
</parameter_description>
</parameter>
</parameters>
<return> the new mini-object.
</return>
</function>

<function name="gst_mini_object_get_qdata">
<description>
This function gets back user data pointers stored via
gst_mini_object_set_qdata().


</description>
<parameters>
<parameter name="object">
<parameter_description> The GstMiniObject to get a stored user data pointer from
</parameter_description>
</parameter>
<parameter name="quark">
<parameter_description> A #GQuark, naming the user data pointer
</parameter_description>
</parameter>
</parameters>
<return> The user data pointer set, or %NULL
</return>
</function>

<function name="gst_mini_object_init">
<description>
Initializes a mini-object with the desired type and copy/dispose/free
functions.

</description>
<parameters>
<parameter name="mini_object">
<parameter_description> a #GstMiniObject
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> initial #GstMiniObjectFlags
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the #GType of the mini-object to create
</parameter_description>
</parameter>
<parameter name="copy_func">
<parameter_description> the copy function, or NULL
</parameter_description>
</parameter>
<parameter name="dispose_func">
<parameter_description> the dispose function, or NULL
</parameter_description>
</parameter>
<parameter name="free_func">
<parameter_description> the free function or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_mini_object_is_writable">
<description>
If @mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE
lock on @object is the only one, this means that changes to the object will
not be visible to any other object.

If the LOCKABLE flag is not set, check if the refcount of @mini_object is
exactly 1, meaning that no other reference exists to the object and that the
object is therefore writable.

Modification of a mini-object should only be done after verifying that it
is writable.


</description>
<parameters>
<parameter name="mini_object">
<parameter_description> the mini-object to check
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the object is writable.
</return>
</function>

<function name="gst_mini_object_lock">
<description>
Lock the mini-object with the specified access mode in @flags.


</description>
<parameters>
<parameter name="object">
<parameter_description> the mini-object to lock
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstLockFlags
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @object could be locked.
</return>
</function>

<function name="gst_mini_object_make_writable">
<description>
Checks if a mini-object is writable.  If not, a writable copy is made and
returned.  This gives away the reference to the original mini object,
and returns a reference to the new object.

MT safe


</description>
<parameters>
<parameter name="mini_object">
<parameter_description> the mini-object to make writable
</parameter_description>
</parameter>
</parameters>
<return> a mini-object (possibly the same pointer) that
is writable.
</return>
</function>

<function name="gst_mini_object_ref">
<description>
Increase the reference count of the mini-object.

Note that the refcount affects the writeability
of @mini-object, see gst_mini_object_is_writable(). It is
important to note that keeping additional references to
GstMiniObject instances can potentially increase the number
of memcpy operations in a pipeline, especially if the miniobject
is a #GstBuffer.


</description>
<parameters>
<parameter name="mini_object">
<parameter_description> the mini-object
</parameter_description>
</parameter>
</parameters>
<return> the mini-object.
</return>
</function>

<function name="gst_mini_object_replace">
<description>
Atomically modifies a pointer to point to a new mini-object.
The reference count of @olddata is decreased and the reference count of
@newdata is increased.

Either @newdata and the value pointed to by @olddata may be NULL.


</description>
<parameters>
<parameter name="olddata">
<parameter_description> pointer to a pointer to a mini-object to
be replaced
</parameter_description>
</parameter>
<parameter name="newdata">
<parameter_description> pointer to new mini-object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @newdata was different from @olddata
</return>
</function>

<function name="gst_mini_object_set_qdata">
<description>
This sets an opaque, named pointer on a miniobject.
The name is specified through a #GQuark (retrived e.g. via
g_quark_from_static_string()), and the pointer
can be gotten back from the @object with gst_mini_object_get_qdata()
until the @object is disposed.
Setting a previously set user data pointer, overrides (frees)
the old pointer set, using #NULL as pointer essentially
removes the data stored.

@destroy may be specified which is called with @data as argument
when the @object is disposed, or the data is being overwritten by
a call to gst_mini_object_set_qdata() with the same @quark.

</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstMiniObject
</parameter_description>
</parameter>
<parameter name="quark">
<parameter_description> A #GQuark, naming the user data pointer
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> An opaque user data pointer
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> Function to invoke with @data as argument, when @data
needs to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_mini_object_steal">
<description>
Replace the current #GstMiniObject pointer to by @olddata with NULL and
return the old value.


</description>
<parameters>
<parameter name="olddata">
<parameter_description> pointer to a pointer to a mini-object to
be stolen
</parameter_description>
</parameter>
</parameters>
<return> the #GstMiniObject at @oldata
</return>
</function>

<function name="gst_mini_object_steal_qdata">
<description>
This function gets back user data pointers stored via gst_mini_object_set_qdata()
and removes the data from @object without invoking its destroy() function (if
any was set).


</description>
<parameters>
<parameter name="object">
<parameter_description> The GstMiniObject to get a stored user data pointer from
</parameter_description>
</parameter>
<parameter name="quark">
<parameter_description> A #GQuark, naming the user data pointer
</parameter_description>
</parameter>
</parameters>
<return> The user data pointer set, or %NULL
</return>
</function>

<function name="gst_mini_object_take">
<description>
Modifies a pointer to point to a new mini-object. The modification
is done atomically. This version is similar to gst_mini_object_replace()
except that it does not increase the refcount of @newdata and thus
takes ownership of @newdata.

Either @newdata and the value pointed to by @olddata may be NULL.


</description>
<parameters>
<parameter name="olddata">
<parameter_description> pointer to a pointer to a mini-object to
be replaced
</parameter_description>
</parameter>
<parameter name="newdata">
<parameter_description> pointer to new mini-object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @newdata was different from @olddata
</return>
</function>

<function name="gst_mini_object_unlock">
<description>
Unlock the mini-object with the specified access mode in @flags.

</description>
<parameters>
<parameter name="object">
<parameter_description> the mini-object to unlock
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstLockFlags
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_mini_object_unref">
<description>
Decreases the reference count of the mini-object, possibly freeing
the mini-object.

</description>
<parameters>
<parameter name="mini_object">
<parameter_description> the mini-object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_mini_object_weak_ref">
<description>
Adds a weak reference callback to a mini object. Weak references are
used for notification when a mini object is finalized. They are called
&quot;weak references&quot; because they allow you to safely hold a pointer
to the mini object without calling gst_mini_object_ref()
(gst_mini_object_ref() adds a strong reference, that is, forces the object
to stay alive).

</description>
<parameters>
<parameter name="object">
<parameter_description> #GstMiniObject to reference weakly
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> callback to invoke before the mini object is freed
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> extra data to pass to notify
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_mini_object_weak_unref">
<description>
Removes a weak reference callback from a mini object.

</description>
<parameters>
<parameter name="object">
<parameter_description> #GstMiniObject to remove a weak reference from
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> callback to search for
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to search for
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_missing_decoder_installer_detail_new">
<description>
Returns an opaque string containing all the details about the missing
element to be passed to an external installer called via
gst_install_plugins_async() or gst_install_plugins_sync().

This function is mainly for applications that call external plugin
installation mechanisms using one of the two above-mentioned functions in
the case where the application knows exactly what kind of plugin it is
missing.


</description>
<parameters>
<parameter name="decode_caps">
<parameter_description> the (fixed) caps for which a decoder element is needed
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated detail string, or NULL on error. Free string
with g_free() when not needed any longer.
</return>
</function>

<function name="gst_missing_decoder_message_new">
<description>
Creates a missing-plugin message for @element to notify the application
that a decoder element for a particular set of (fixed) caps is missing.
This function is mainly for use in plugins.


</description>
<parameters>
<parameter name="element">
<parameter_description> the #GstElement posting the message
</parameter_description>
</parameter>
<parameter name="decode_caps">
<parameter_description> the (fixed) caps for which a decoder element is needed
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMessage, or NULL on error
</return>
</function>

<function name="gst_missing_element_installer_detail_new">
<description>
Returns an opaque string containing all the details about the missing
element to be passed to an external installer called via
gst_install_plugins_async() or gst_install_plugins_sync().

This function is mainly for applications that call external plugin
installation mechanisms using one of the two above-mentioned functions in
the case where the application knows exactly what kind of plugin it is
missing.


</description>
<parameters>
<parameter name="factory_name">
<parameter_description> the name of the missing element (element factory),
e.g. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated detail string, or NULL on error. Free string
with g_free() when not needed any longer.
</return>
</function>

<function name="gst_missing_element_message_new">
<description>
Creates a missing-plugin message for @element to notify the application
that a certain required element is missing. This function is mainly for
use in plugins.


</description>
<parameters>
<parameter name="element">
<parameter_description> the #GstElement posting the message
</parameter_description>
</parameter>
<parameter name="factory_name">
<parameter_description> the name of the missing element (element factory),
e.g. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMessage, or NULL on error
</return>
</function>

<function name="gst_missing_encoder_installer_detail_new">
<description>
Returns an opaque string containing all the details about the missing
element to be passed to an external installer called via
gst_install_plugins_async() or gst_install_plugins_sync().

This function is mainly for applications that call external plugin
installation mechanisms using one of the two above-mentioned functions in
the case where the application knows exactly what kind of plugin it is
missing.


</description>
<parameters>
<parameter name="encode_caps">
<parameter_description> the (fixed) caps for which an encoder element is needed
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated detail string, or NULL on error. Free string
with g_free() when not needed any longer.
</return>
</function>

<function name="gst_missing_encoder_message_new">
<description>
Creates a missing-plugin message for @element to notify the application
that an encoder element for a particular set of (fixed) caps is missing.
This function is mainly for use in plugins.


</description>
<parameters>
<parameter name="element">
<parameter_description> the #GstElement posting the message
</parameter_description>
</parameter>
<parameter name="encode_caps">
<parameter_description> the (fixed) caps for which an encoder element is needed
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMessage, or NULL on error
</return>
</function>

<function name="gst_missing_plugin_message_get_description">
<description>
Returns a localised string describing the missing feature, for use in
error dialogs and the like. Should never return NULL unless @msg is not
a valid missing-plugin message.

This function is mainly for applications that need a human-readable string
describing a missing plugin, given a previously collected missing-plugin
message


</description>
<parameters>
<parameter name="msg">
<parameter_description> a missing-plugin #GstMessage of type #GST_MESSAGE_ELEMENT
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated description string, or NULL on error. Free
string with g_free() when not needed any longer.
</return>
</function>

<function name="gst_missing_plugin_message_get_installer_detail">
<description>
Returns an opaque string containing all the details about the missing
element to be passed to an external installer called via
gst_install_plugins_async() or gst_install_plugins_sync().

This function is mainly for applications that call external plugin
installation mechanisms using one of the two above-mentioned functions.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a missing-plugin #GstMessage of type #GST_MESSAGE_ELEMENT
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated detail string, or NULL on error. Free string
with g_free() when not needed any longer.
</return>
</function>

<function name="gst_missing_uri_sink_installer_detail_new">
<description>
Returns an opaque string containing all the details about the missing
element to be passed to an external installer called via
gst_install_plugins_async() or gst_install_plugins_sync().

This function is mainly for applications that call external plugin
installation mechanisms using one of the two above-mentioned functions in
the case where the application knows exactly what kind of plugin it is
missing.


</description>
<parameters>
<parameter name="protocol">
<parameter_description> the URI protocol the missing source needs to implement,
e.g. &quot;http&quot; or &quot;mms&quot;
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated detail string, or NULL on error. Free string
with g_free() when not needed any longer.
</return>
</function>

<function name="gst_missing_uri_sink_message_new">
<description>
Creates a missing-plugin message for @element to notify the application
that a sink element for a particular URI protocol is missing. This
function is mainly for use in plugins.


</description>
<parameters>
<parameter name="element">
<parameter_description> the #GstElement posting the message
</parameter_description>
</parameter>
<parameter name="protocol">
<parameter_description> the URI protocol the missing sink needs to implement,
e.g. &quot;http&quot; or &quot;smb&quot;
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMessage, or NULL on error
</return>
</function>

<function name="gst_missing_uri_source_installer_detail_new">
<description>
Returns an opaque string containing all the details about the missing
element to be passed to an external installer called via
gst_install_plugins_async() or gst_install_plugins_sync().

This function is mainly for applications that call external plugin
installation mechanisms using one of the two above-mentioned functions in
the case where the application knows exactly what kind of plugin it is
missing.


</description>
<parameters>
<parameter name="protocol">
<parameter_description> the URI protocol the missing source needs to implement,
e.g. &quot;http&quot; or &quot;mms&quot;
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated detail string, or NULL on error. Free string
with g_free() when not needed any longer.
</return>
</function>

<function name="gst_missing_uri_source_message_new">
<description>
Creates a missing-plugin message for @element to notify the application
that a source element for a particular URI protocol is missing. This
function is mainly for use in plugins.


</description>
<parameters>
<parameter name="element">
<parameter_description> the #GstElement posting the message
</parameter_description>
</parameter>
<parameter name="protocol">
<parameter_description> the URI protocol the missing source needs to implement,
e.g. &quot;http&quot; or &quot;mms&quot;
</parameter_description>
</parameter>
</parameters>
<return> a new #GstMessage, or NULL on error
</return>
</function>

<function name="gst_navigation_event_get_type">
<description>
Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
#GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event.

</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to inspect.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_navigation_event_parse_command">
<description>
Inspect a #GstNavigation command event and retrieve the enum value of the
associated command.


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to inspect.
</parameter_description>
</parameter>
<parameter name="command">
<parameter_description> Pointer to GstNavigationCommand to receive the type of the
navigation event.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the navigation command could be extracted, otherwise FALSE.
</return>
</function>

<function name="gst_navigation_event_parse_key_event">
<description>

</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to inspect.
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> A pointer to a location to receive the string identifying the key
press. The returned string is owned by the event, and valid only until the
event is unreffed.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_navigation_event_parse_mouse_button_event">
<description>
Retrieve the details of either a #GstNavigation mouse button press event or
a mouse button release event. Determine which type the event is using
gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to inspect.
</parameter_description>
</parameter>
<parameter name="button">
<parameter_description> Pointer to a gint that will receive the button number associated
with the event.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> Pointer to a gdouble to receive the x coordinate of the mouse button
event.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Pointer to a gdouble to receive the y coordinate of the mouse button
event.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the button number and both coordinates could be extracted,
otherwise FALSE.
</return>
</function>

<function name="gst_navigation_event_parse_mouse_move_event">
<description>
Inspect a #GstNavigation mouse movement event and extract the coordinates
of the event.


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to inspect.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> Pointer to a gdouble to receive the x coordinate of the mouse movement.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Pointer to a gdouble to receive the y coordinate of the mouse movement.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if both coordinates could be extracted, otherwise FALSE.
</return>
</function>

<function name="gst_navigation_message_get_type">
<description>
Check a bus message to see if it is a #GstNavigation event, and return
the #GstNavigationMessageType identifying the type of the message if so.


</description>
<parameters>
<parameter name="message">
<parameter_description> A #GstMessage to inspect.
</parameter_description>
</parameter>
</parameters>
<return> The type of the #GstMessage, or
#GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
notification.
</return>
</function>

<function name="gst_navigation_message_new_angles_changed">
<description>
Creates a new #GstNavigation message with type
#GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
that the current angle, or current number of angles available in a
multiangle video has changed.


</description>
<parameters>
<parameter name="src">
<parameter_description> A #GstObject to set as source of the new message.
</parameter_description>
</parameter>
<parameter name="cur_angle">
<parameter_description> The currently selected angle.
</parameter_description>
</parameter>
<parameter name="n_angles">
<parameter_description> The number of viewing angles now available.
</parameter_description>
</parameter>
</parameters>
<return> The new #GstMessage.
</return>
</function>

<function name="gst_navigation_message_new_commands_changed">
<description>
Creates a new #GstNavigation message with type
#GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED


</description>
<parameters>
<parameter name="src">
<parameter_description> A #GstObject to set as source of the new message.
</parameter_description>
</parameter>
</parameters>
<return> The new #GstMessage.
</return>
</function>

<function name="gst_navigation_message_new_mouse_over">
<description>
Creates a new #GstNavigation message with type
#GST_NAVIGATION_MESSAGE_MOUSE_OVER.


</description>
<parameters>
<parameter name="src">
<parameter_description> A #GstObject to set as source of the new message.
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> %TRUE if the mouse has entered a clickable area of the display.
%FALSE if it over a non-clickable area.
</parameter_description>
</parameter>
</parameters>
<return> The new #GstMessage.
</return>
</function>

<function name="gst_navigation_message_parse_angles_changed">
<description>
Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
and extract the @cur_angle and @n_angles parameters.


</description>
<parameters>
<parameter name="message">
<parameter_description> A #GstMessage to inspect.
</parameter_description>
</parameter>
<parameter name="cur_angle">
<parameter_description> A pointer to a #guint to receive the new current angle number,
or NULL
</parameter_description>
</parameter>
<parameter name="n_angles">
<parameter_description> A pointer to a #guint to receive the new angle count, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the message could be successfully parsed. %FALSE if not.
</return>
</function>

<function name="gst_navigation_message_parse_mouse_over">
<description>
Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
and extract the active/inactive flag. If the mouse over event is marked
active, it indicates that the mouse is over a clickable area.


</description>
<parameters>
<parameter name="message">
<parameter_description> A #GstMessage to inspect.
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> A pointer to a gboolean to receive the active/inactive state,
or NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the message could be successfully parsed. %FALSE if not.
</return>
</function>

<function name="gst_navigation_query_get_type">
<description>
Inspect a #GstQuery and return the #GstNavigationQueryType associated with
it if it is a #GstNavigation query.


</description>
<parameters>
<parameter name="query">
<parameter_description> The query to inspect
</parameter_description>
</parameter>
</parameters>
<return> The #GstNavigationQueryType of the query, or
#GST_NAVIGATION_QUERY_INVALID
</return>
</function>

<function name="gst_navigation_query_new_angles">
<description>
Create a new #GstNavigation angles query. When executed, it will
query the pipeline for the set of currently available angles, which may be
greater than one in a multiangle video.


</description>
<parameters>
</parameters>
<return> The new query.
</return>
</function>

<function name="gst_navigation_query_new_commands">
<description>
Create a new #GstNavigation commands query. When executed, it will
query the pipeline for the set of currently available commands.


</description>
<parameters>
</parameters>
<return> The new query.
</return>
</function>

<function name="gst_navigation_query_parse_angles">
<description>
Parse the current angle number in the #GstNavigation angles @query into the
#guint pointed to by the @cur_angle variable, and the number of available
angles into the #guint pointed to by the @n_angles variable.


</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="cur_angle">
<parameter_description> Pointer to a #guint into which to store the currently selected
angle value from the query, or NULL
</parameter_description>
</parameter>
<parameter name="n_angles">
<parameter_description> Pointer to a #guint into which to store the number of angles
value from the query, or NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the query could be successfully parsed. %FALSE if not.
</return>
</function>

<function name="gst_navigation_query_parse_commands_length">
<description>
Parse the number of commands in the #GstNavigation commands @query.


</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="n_cmds">
<parameter_description> the number of commands in this query.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the query could be successfully parsed. %FALSE if not.
</return>
</function>

<function name="gst_navigation_query_parse_commands_nth">
<description>
Parse the #GstNavigation command query and retrieve the @nth command from
it into @cmd. If the list contains less elements than @nth, @cmd will be
set to #GST_NAVIGATION_COMMAND_INVALID.


</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> the nth command to retrieve.
</parameter_description>
</parameter>
<parameter name="cmd">
<parameter_description> a pointer to store the nth command into.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the query could be successfully parsed. %FALSE if not.
</return>
</function>

<function name="gst_navigation_query_set_angles">
<description>
Set the #GstNavigation angles query result field in @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="cur_angle">
<parameter_description> the current viewing angle to set.
</parameter_description>
</parameter>
<parameter name="n_angles">
<parameter_description> the number of viewing angles to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_navigation_query_set_commands">
<description>
Set the #GstNavigation command query result fields in @query. The number
of commands passed must be equal to @n_commands.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="n_cmds">
<parameter_description> the number of commands to set.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> A list of @GstNavigationCommand values, @n_cmds entries long.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_navigation_query_set_commandsv">
<description>
Set the #GstNavigation command query result fields in @query. The number
of commands passed must be equal to @n_commands.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="n_cmds">
<parameter_description> the number of commands to set.
</parameter_description>
</parameter>
<parameter name="cmds">
<parameter_description> An array containing @n_cmds @GstNavigationCommand values.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_navigation_send_command">
<description>
Sends the indicated command to the navigation interface.

</description>
<parameters>
<parameter name="navigation">
<parameter_description> The navigation interface instance
</parameter_description>
</parameter>
<parameter name="command">
<parameter_description> The command to issue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_navigation_send_key_event">
<description>

</description>
<parameters>
<parameter name="navigation">
<parameter_description> The navigation interface instance
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> The type of the key event. Recognised values are &quot;key-press&quot; and
&quot;key-release&quot;
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> Character representation of the key. This is typically as produced
by XKeysymToString.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_navigation_send_mouse_event">
<description>
Sends a mouse event to the navigation interface. Mouse event coordinates
are sent relative to the display space of the related output area. This is
usually the size in pixels of the window associated with the element
implementing the #GstNavigation interface.


</description>
<parameters>
<parameter name="navigation">
<parameter_description> The navigation interface instance
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> The type of mouse event, as a text string. Recognised values are
&quot;mouse-button-press&quot;, &quot;mouse-button-release&quot; and &quot;mouse-move&quot;.
</parameter_description>
</parameter>
<parameter name="button">
<parameter_description> The button number of the button being pressed or released. Pass 0
for mouse-move events.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> The x coordinate of the mouse event.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> The y coordinate of the mouse event.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_net_client_clock_new">
<description>
Create a new #GstNetClientClock that will report the time
provided by the #GstNetTimeProvider on @remote_address and 
@remote_port.


</description>
<parameters>
<parameter name="name">
<parameter_description> a name for the clock
</parameter_description>
</parameter>
<parameter name="remote_address">
<parameter_description> the address of the remote clock provider
</parameter_description>
</parameter>
<parameter name="remote_port">
<parameter_description> the port of the remote clock provider
</parameter_description>
</parameter>
<parameter name="base_time">
<parameter_description> initial time of the clock
</parameter_description>
</parameter>
</parameters>
<return> a new #GstClock that receives a time from the remote
clock.
</return>
</function>

<function name="gst_net_time_packet_copy">
<description>
Make a copy of @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> the #GstNetTimePacket
</parameter_description>
</parameter>
</parameters>
<return> a copy of @packet, free with gst_net_time_packet_free().
</return>
</function>

<function name="gst_net_time_packet_free">
<description>
Free @packet.

</description>
<parameters>
<parameter name="packet">
<parameter_description> the #GstNetTimePacket
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_net_time_packet_new">
<description>
Creates a new #GstNetTimePacket from a buffer received over the network. The
caller is responsible for ensuring that @buffer is at least
#GST_NET_TIME_PACKET_SIZE bytes long.

If @buffer is #NULL, the local and remote times will be set to
#GST_CLOCK_TIME_NONE.

MT safe. Caller owns return value (gst_net_time_packet_free to free).


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a buffer from which to construct the packet, or NULL
</parameter_description>
</parameter>
</parameters>
<return> The new #GstNetTimePacket.
</return>
</function>

<function name="gst_net_time_packet_receive">
<description>
Receives a #GstNetTimePacket over a socket. Handles interrupted system
calls, but otherwise returns NULL on error.


</description>
<parameters>
<parameter name="socket">
<parameter_description> socket to receive the time packet on
</parameter_description>
</parameter>
<parameter name="src_address">
<parameter_description> address of variable to return sender address
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return address for a #GError, or NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GstNetTimePacket, or NULL on error. Free
with gst_net_time_packet_free() when done.
</return>
</function>

<function name="gst_net_time_packet_send">
<description>
Sends a #GstNetTimePacket over a socket.

MT safe.


</description>
<parameters>
<parameter name="packet">
<parameter_description> the #GstNetTimePacket to send
</parameter_description>
</parameter>
<parameter name="socket">
<parameter_description> socket to send the time packet on
</parameter_description>
</parameter>
<parameter name="dest_address">
<parameter_description> address to send the time packet to
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return address for a #GError, or NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if successful, FALSE in case an error occured.
</return>
</function>

<function name="gst_net_time_packet_serialize">
<description>
Serialized a #GstNetTimePacket into a newly-allocated sequence of
#GST_NET_TIME_PACKET_SIZE bytes, in network byte order. The value returned is
suitable for passing to write(2) or sendto(2) for communication over the
network.

MT safe. Caller owns return value (g_free to free).


</description>
<parameters>
<parameter name="packet">
<parameter_description> the #GstNetTimePacket
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated sequence of #GST_NET_TIME_PACKET_SIZE bytes.
</return>
</function>

<function name="gst_net_time_provider_new">
<description>
Allows network clients to get the current time of @clock.


</description>
<parameters>
<parameter name="clock">
<parameter_description> a #GstClock to export over the network
</parameter_description>
</parameter>
<parameter name="address">
<parameter_description> an address to bind on as a dotted quad (xxx.xxx.xxx.xxx), IPv6 address, or NULL
to bind to all addresses
</parameter_description>
</parameter>
<parameter name="port">
<parameter_description> a port to bind on, or 0 to let the kernel choose
</parameter_description>
</parameter>
</parameters>
<return> the new #GstNetTimeProvider, or NULL on error
</return>
</function>

<function name="gst_object_add_control_binding">
<description>
Attach the #GstControlBinding to the object. If there already was a
#GstControlBinding for this property it will be replaced.

The @object will take ownership of the @binding.


</description>
<parameters>
<parameter name="object">
<parameter_description> the controller object
</parameter_description>
</parameter>
<parameter name="binding">
<parameter_description> the #GstControlBinding that should be used
</parameter_description>
</parameter>
</parameters>
<return> %FALSE if the given @binding has not been setup for this object or
has been setup for a non suitable property, %TRUE otherwise.
</return>
</function>

<function name="gst_object_check_uniqueness">
<description>
Checks to see if there is any object named @name in @list. This function
does not do any locking of any kind. You might want to protect the
provided list with the lock of the owner of the list. This function
will lock each #GstObject in the list to compare the name, so be
carefull when passing a list with a locked object.


</description>
<parameters>
<parameter name="list">
<parameter_description> a list of #GstObject to
check through
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name to search for
</parameter_description>
</parameter>
</parameters>
<return> TRUE if a #GstObject named @name does not appear in @list,
FALSE if it does.

MT safe. Grabs and releases the LOCK of each object in the list.
</return>
</function>

<function name="gst_object_default_deep_notify">
<description>
A default deep_notify signal callback for an object. The user data
should contain a pointer to an array of strings that should be excluded
from the notify. The default handler will print the new value of the property
using g_print.

MT safe. This function grabs and releases @object's LOCK for getting its
path string.

</description>
<parameters>
<parameter name="object">
<parameter_description> the #GObject that signalled the notify.
</parameter_description>
</parameter>
<parameter name="orig">
<parameter_description> a #GstObject that initiated the notify.
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> a #GParamSpec of the property.
</parameter_description>
</parameter>
<parameter name="excluded_props">
<parameter_description>
a set of user-specified properties to exclude or NULL to show
all changes.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_object_default_error">
<description>
A default error function that uses g_printerr() to display the error message
and the optional debug sting..

The default handler will simply print the error string using g_print.

</description>
<parameters>
<parameter name="source">
<parameter_description> the #GstObject that initiated the error.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> the GError.
</parameter_description>
</parameter>
<parameter name="debug">
<parameter_description> an additional debug information string, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_object_get_control_binding">
<description>
Gets the corresponding #GstControlBinding for the property. This should be
unreferenced again after use.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> name of the property
</parameter_description>
</parameter>
</parameters>
<return> the #GstControlBinding for @property_name or %NULL if
the property is not controlled.
</return>
</function>

<function name="gst_object_get_control_rate">
<description>
Obtain the control-rate for this @object. Audio processing #GstElement
objects will use this rate to sub-divide their processing loop and call
gst_object_sync_values() inbetween. The length of the processing segment
should be up to @control-rate nanoseconds.

If the @object is not under property control, this will return
%GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.

The control-rate is not expected to change if the element is in
%GST_STATE_PAUSED or %GST_STATE_PLAYING.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
</parameters>
<return> the control rate in nanoseconds
</return>
</function>

<function name="gst_object_get_g_value_array">
<description>
Gets a number of #GValues for the given controlled property starting at the
requested time. The array @values need to hold enough space for @n_values of
#GValue.

This function is useful if one wants to e.g. draw a graph of the control
curve or apply a control curve sample by sample.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the property to get
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time that should be processed
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> the time spacing between subsequent values
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the number of values
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> array to put control-values in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the given array could be filled, %FALSE otherwise
</return>
</function>

<function name="gst_object_get_name">
<description>
Returns a copy of the name of @object.
Caller should g_free() the return value after usage.
For a nameless object, this returns NULL, which you can safely g_free()
as well.

Free-function: g_free


</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject
</parameter_description>
</parameter>
</parameters>
<return> the name of @object. g_free() after usage.

MT safe. This function grabs and releases @object's LOCK.
</return>
</function>

<function name="gst_object_get_parent">
<description>
Returns the parent of @object. This function increases the refcount
of the parent object so you should gst_object_unref() it after usage.


</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject
</parameter_description>
</parameter>
</parameters>
<return> parent of @object, this can be NULL if @object
has no parent. unref after usage.

MT safe. Grabs and releases @object's LOCK.
</return>
</function>

<function name="gst_object_get_path_string">
<description>
Generates a string describing the path of @object in
the object hierarchy. Only useful (or used) for debugging.

Free-function: g_free


</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject
</parameter_description>
</parameter>
</parameters>
<return> a string describing the path of @object. You must
g_free() the string after usage.

MT safe. Grabs and releases the #GstObject's LOCK for all objects
in the hierarchy.
</return>
</function>

<function name="gst_object_get_value">
<description>
Gets the value for the given controlled property at the requested time.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the property to get
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time the control-change should be read from
</parameter_description>
</parameter>
</parameters>
<return> the GValue of the property at the given time, or %NULL if the
property isn't controlled.
</return>
</function>

<function name="gst_object_get_value_array">
<description>
Gets a number of values for the given controlled property starting at the
requested time. The array @values need to hold enough space for @n_values of
the same type as the objects property's type.

This function is useful if one wants to e.g. draw a graph of the control
curve or apply a control curve sample by sample.

The values are unboxed and ready to be used. The similar function 
gst_object_get_g_value_array() returns the array as #GValues and is
better suites for bindings.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the property to get
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time that should be processed
</parameter_description>
</parameter>
<parameter name="interval">
<parameter_description> the time spacing between subsequent values
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the number of values
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> array to put control-values in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the given array could be filled, %FALSE otherwise
</return>
</function>

<function name="gst_object_has_active_control_bindings">
<description>
Check if the @object has an active controlled properties.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the object has active controlled properties
</return>
</function>

<function name="gst_object_has_ancestor">
<description>
Check if @object has an ancestor @ancestor somewhere up in
the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.


</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject to check
</parameter_description>
</parameter>
<parameter name="ancestor">
<parameter_description> a #GstObject to check as ancestor
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @ancestor is an ancestor of @object.

MT safe. Grabs and releases @object's locks.
</return>
</function>

<function name="gst_object_ref">
<description>
Increments the reference count on @object. This function
does not take the lock on @object because it relies on
atomic refcounting.

This object returns the input parameter to ease writing
constructs like :
result = gst_object_ref (object-&gt;parent);


</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject to reference
</parameter_description>
</parameter>
</parameters>
<return> A pointer to @object
</return>
</function>

<function name="gst_object_ref_sink">
<description>
Increase the reference count of @object, and possibly remove the floating
reference, if @object has a floating reference.

In other words, if the object is floating, then this call &quot;assumes ownership&quot;
of the floating reference, converting it to a normal reference by clearing
the floating flag while leaving the reference count unchanged. If the object
is not floating, then this call adds a new normal reference increasing the
reference count by one.

</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject to sink
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_object_remove_control_binding">
<description>
Removes the corresponding #GstControlBinding. If it was the
last ref of the binding, it will be disposed.  


</description>
<parameters>
<parameter name="object">
<parameter_description> the object
</parameter_description>
</parameter>
<parameter name="binding">
<parameter_description> the binding
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the binding could be removed.
</return>
</function>

<function name="gst_object_replace">
<description>
Atomically modifies a pointer to point to a new object.
The reference count of @oldobj is decreased and the reference count of
@newobj is increased.

Either @newobj and the value pointed to by @oldobj may be NULL.


</description>
<parameters>
<parameter name="oldobj">
<parameter_description> pointer to a place of a #GstObject to
replace
</parameter_description>
</parameter>
<parameter name="newobj">
<parameter_description> a new #GstObject
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @newobj was different from @oldobj
</return>
</function>

<function name="gst_object_set_control_binding_disabled">
<description>
This function is used to disable the #GstController on a property for
some time, i.e. gst_controller_sync_values() will do nothing for the
property.

</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> property to disable
</parameter_description>
</parameter>
<parameter name="disabled">
<parameter_description> boolean that specifies whether to disable the controller
or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_object_set_control_bindings_disabled">
<description>
This function is used to disable all controlled properties of the @object for
some time, i.e. gst_object_sync_values() will do nothing.

</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="disabled">
<parameter_description> boolean that specifies whether to disable the controller
or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_object_set_control_rate">
<description>
Change the control-rate for this @object. Audio processing #GstElement
objects will use this rate to sub-divide their processing loop and call
gst_object_sync_values() inbetween. The length of the processing segment
should be up to @control-rate nanoseconds.

The control-rate should not change if the element is in %GST_STATE_PAUSED or
%GST_STATE_PLAYING.

</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="control_rate">
<parameter_description> the new control-rate in nanoseconds.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_object_set_name">
<description>
Sets the name of @object, or gives @object a guaranteed unique
name (if @name is NULL).
This function makes a copy of the provided name, so the caller
retains ownership of the name it sent.


</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description>   new name of object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the name could be set. Since Objects that have
a parent cannot be renamed, this function returns FALSE in those
cases.

MT safe.  This function grabs and releases @object's LOCK.
</return>
</function>

<function name="gst_object_set_parent">
<description>
Sets the parent of @object to @parent. The object's reference count will
be incremented, and any floating reference will be removed (see gst_object_ref_sink()).


</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> new parent of object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @parent could be set or FALSE when @object
already had a parent or @object and @parent are the same.

MT safe. Grabs and releases @object's LOCK.
</return>
</function>

<function name="gst_object_suggest_next_sync">
<description>
Returns a suggestion for timestamps where buffers should be split
to get best controller results.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
</parameters>
<return> Returns the suggested timestamp or %GST_CLOCK_TIME_NONE
if no control-rate was set.
</return>
</function>

<function name="gst_object_sync_values">
<description>
Sets the properties of the object, according to the #GstControlSources that
(maybe) handle them and for the given timestamp.

If this function fails, it is most likely the application developers fault.
Most probably the control sources are not setup correctly.


</description>
<parameters>
<parameter name="object">
<parameter_description> the object that has controlled properties
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time that should be processed
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the controller values could be applied to the object
properties, %FALSE otherwise
</return>
</function>

<function name="gst_object_unparent">
<description>
Clear the parent of @object, removing the associated reference.
This function decreases the refcount of @object.

MT safe. Grabs and releases @object's lock.

</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject to unparent
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_object_unref">
<description>
Decrements the reference count on @object.  If reference count hits
zero, destroy @object. This function does not take the lock
on @object as it relies on atomic refcounting.

The unref method should never be called with the LOCK held since
this might deadlock the dispose function.

</description>
<parameters>
<parameter name="object">
<parameter_description> a #GstObject to unreference
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_activate_mode">
<description>
Activates or deactivates the given pad in @mode via dispatching to the
pad's activatemodefunc. For use from within pad activation functions only.

If you don't know what this is, you probably don't want to call it.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to activate or deactivate.
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the requested activation mode
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> whether or not the pad should be active.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the operation was successful.

MT safe.
</return>
</function>

<function name="gst_pad_add_probe">
<description>
Be notified of different states of pads. The provided callback is called for
every state that matches @mask.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to add the probe to
</parameter_description>
</parameter>
<parameter name="mask">
<parameter_description> the probe mask
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> #GstPadProbeCallback that will be called with notifications of
the pad state
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the callback
</parameter_description>
</parameter>
<parameter name="destroy_data">
<parameter_description> #GDestroyNotify for user_data
</parameter_description>
</parameter>
</parameters>
<return> an id or 0 on error. The id can be used to remove the probe with
gst_pad_remove_probe().

MT safe.
</return>
</function>

<function name="gst_pad_can_link">
<description>
Checks if the source pad and the sink pad are compatible so they can be
linked.


</description>
<parameters>
<parameter name="srcpad">
<parameter_description> the source #GstPad.
</parameter_description>
</parameter>
<parameter name="sinkpad">
<parameter_description> the sink #GstPad.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pads can be linked.
</return>
</function>

<function name="gst_pad_chain">
<description>
Chain a buffer to @pad.

The function returns #GST_FLOW_FLUSHING if the pad was flushing.

If the buffer type is not acceptable for @pad (as negotiated with a
preceeding GST_EVENT_CAPS event), this function returns
#GST_FLOW_NOT_NEGOTIATED.

The function proceeds calling the chain function installed on @pad (see
gst_pad_set_chain_function()) and the return value of that function is
returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
chain function.

In all cases, success or failure, the caller loses its reference to @buffer
after calling this function.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a sink #GstPad, returns GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the #GstBuffer to send, return GST_FLOW_ERROR
if not.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the pad.

MT safe.
</return>
</function>

<function name="gst_pad_chain_list">
<description>
Chain a bufferlist to @pad.

The function returns #GST_FLOW_FLUSHING if the pad was flushing.

If @pad was not negotiated properly with a CAPS event, this function
returns #GST_FLOW_NOT_NEGOTIATED.

The function proceeds calling the chainlist function installed on @pad (see
gst_pad_set_chain_list_function()) and the return value of that function is
returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
chainlist function.

In all cases, success or failure, the caller loses its reference to @list
after calling this function.

MT safe.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a sink #GstPad, returns GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> the #GstBufferList to send, return GST_FLOW_ERROR
if not.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the pad.
</return>
</function>

<function name="gst_pad_check_reconfigure">
<description>
Check and clear the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE
if the flag was set.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag was set on @pad.
</return>
</function>

<function name="gst_pad_create_stream_id">
<description>
Creates a stream-id for the source #GstPad @pad by combining the
upstream information with the optional @stream_id of the stream
of @pad. @pad must have a parent #GstElement and which must have zero
or one sinkpad. @stream_id can only be %NULL if the parent element
of @pad has only a single source pad.

This function generates an unique stream-id by getting the upstream
stream-start event stream ID and appending @stream_id to it. If the
element has no sinkpad it will generate an upstream stream-id by
doing an URI query on the element and in the worst case just uses
a random number. Source elements that don't implement the URI
handler interface should ideally generate a unique, deterministic
stream-id manually instead.

Since stream IDs are sorted alphabetically, any numbers in the
stream ID should be printed with a fixed number of characters,
preceded by 0's, such as by using the format %%03u instead of %%u.


</description>
<parameters>
<parameter name="pad">
<parameter_description> A source #GstPad
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Parent #GstElement of @pad
</parameter_description>
</parameter>
<parameter name="stream_id">
<parameter_description> The stream-id
</parameter_description>
</parameter>
</parameters>
<return> A stream-id for @pad. g_free() after usage.
</return>
</function>

<function name="gst_pad_create_stream_id_printf">
<description>
Creates a stream-id for the source #GstPad @pad by combining the
upstream information with the optional @stream_id of the stream
of @pad. @pad must have a parent #GstElement and which must have zero
or one sinkpad. @stream_id can only be %NULL if the parent element
of @pad has only a single source pad.

This function generates an unique stream-id by getting the upstream
stream-start event stream ID and appending @stream_id to it. If the
element has no sinkpad it will generate an upstream stream-id by
doing an URI query on the element and in the worst case just uses
a random number. Source elements that don't implement the URI
handler interface should ideally generate a unique, deterministic
stream-id manually instead.


</description>
<parameters>
<parameter name="pad">
<parameter_description> A source #GstPad
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Parent #GstElement of @pad
</parameter_description>
</parameter>
<parameter name="stream_id">
<parameter_description> The stream-id
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> parameters for the @stream_id format string
</parameter_description>
</parameter>
</parameters>
<return> A stream-id for @pad. g_free() after usage.
</return>
</function>

<function name="gst_pad_create_stream_id_printf_valist">
<description>
Creates a stream-id for the source #GstPad @pad by combining the
upstream information with the optional @stream_id of the stream
of @pad. @pad must have a parent #GstElement and which must have zero
or one sinkpad. @stream_id can only be %NULL if the parent element
of @pad has only a single source pad.

This function generates an unique stream-id by getting the upstream
stream-start event stream ID and appending @stream_id to it. If the
element has no sinkpad it will generate an upstream stream-id by
doing an URI query on the element and in the worst case just uses
a random number. Source elements that don't implement the URI
handler interface should ideally generate a unique, deterministic
stream-id manually instead.


</description>
<parameters>
<parameter name="pad">
<parameter_description> A source #GstPad
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Parent #GstElement of @pad
</parameter_description>
</parameter>
<parameter name="stream_id">
<parameter_description> The stream-id
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> parameters for the @stream_id format string
</parameter_description>
</parameter>
</parameters>
<return> A stream-id for @pad. g_free() after usage.
</return>
</function>

<function name="gst_pad_event_default">
<description>
Invokes the default event handler for the given pad.

The EOS event will pause the task associated with @pad before it is forwarded
to all internally linked pads,

The the event is sent to all pads internally linked to @pad. This function
takes ownership of @event.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to call the default event handler on.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the #GstEvent to handle.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the event was sent successfully.
</return>
</function>

<function name="gst_pad_forward">
<description>
Calls @forward for all internally linked pads of @pad. This function deals with
dynamically changing internal pads and will make sure that the @forward
function is only called once for each pad.

When @forward returns TRUE, no further pads will be processed.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad
</parameter_description>
</parameter>
<parameter name="forward">
<parameter_description> a #GstPadForwardFunction
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @forward
</parameter_description>
</parameter>
</parameters>
<return> TRUE if one of the dispatcher functions returned TRUE.
</return>
</function>

<function name="gst_pad_get_allowed_caps">
<description>
Gets the capabilities of the allowed media types that can flow through
@pad and its peer.

The allowed capabilities is calculated as the intersection of the results of
calling gst_pad_query_caps() on @pad and its peer. The caller owns a reference
on the resulting caps.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
</parameters>
<return> the allowed #GstCaps of the pad link. Unref the
caps when you no longer need it. This function returns NULL when @pad
has no peer.

MT safe.
</return>
</function>

<function name="gst_pad_get_current_caps">
<description>
Gets the capabilities currently configured on @pad with the last
#GST_EVENT_CAPS event.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a  #GstPad to get the current capabilities of.
</parameter_description>
</parameter>
</parameters>
<return> the current caps of the pad with incremented ref-count.
</return>
</function>

<function name="gst_pad_get_direction">
<description>
Gets the direction of the pad. The direction of the pad is
decided at construction time so this function does not take
the LOCK.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to get the direction of.
</parameter_description>
</parameter>
</parameters>
<return> the #GstPadDirection of the pad.

MT safe.
</return>
</function>

<function name="gst_pad_get_element_private">
<description>
Gets the private data of a pad.
No locking is performed in this function.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to get the private data of.
</parameter_description>
</parameter>
</parameters>
<return> a #gpointer to the private data.
</return>
</function>

<function name="gst_pad_get_name">
<description>
Get a copy of the name of the pad. g_free() after usage.

MT safe.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the pad to get the name from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_get_offset">
<description>
Get the offset applied to the running time of @pad. @pad has to be a source
pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad
</parameter_description>
</parameter>
</parameters>
<return> the offset.
</return>
</function>

<function name="gst_pad_get_pad_template">
<description>
Gets the template for @pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
</parameters>
<return> the #GstPadTemplate from which this pad was
instantiated, or %NULL if this pad has no template. Unref after
usage.
</return>
</function>

<function name="gst_pad_get_pad_template_caps">
<description>
Gets the capabilities for @pad's template.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to get the template capabilities from.
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps of this pad template.
Unref after usage.
</return>
</function>

<function name="gst_pad_get_parent">
<description>
Get the parent of @pad. This function increases the refcount
of the parent object so you should gst_object_unref() it after usage.
Can return NULL if the pad did not have a parent.

MT safe.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the pad to get the parent of
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_get_parent_element">
<description>
Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
its parent is not an element, return NULL.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a pad
</parameter_description>
</parameter>
</parameters>
<return> the parent of the pad. The caller has a
reference on the parent, so unref when you're finished with it.

MT safe.
</return>
</function>

<function name="gst_pad_get_peer">
<description>
Gets the peer of @pad. This function refs the peer pad so
you need to unref it after use.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to get the peer of.
</parameter_description>
</parameter>
</parameters>
<return> the peer #GstPad. Unref after usage.

MT safe.
</return>
</function>

<function name="gst_pad_get_range">
<description>
When @pad is flushing this function returns #GST_FLOW_FLUSHING
immediately and @buffer is %NULL.

Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
description of a getrange function. If @pad has no getrange function
installed (see gst_pad_set_getrange_function()) this function returns
#GST_FLOW_NOT_SUPPORTED.

If @buffer points to a variable holding NULL, a valid new #GstBuffer will be
placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
must be freed with gst_buffer_unref() after usage.

When @buffer points to a variable that points to a valid #GstBuffer, the
buffer will be filled with the result data when this function returns
#GST_FLOW_OK. If the provided buffer is larger than @size, only
@size bytes will be filled in the result buffer and its size will be updated
accordingly.

Note that less than @size bytes can be returned in @buffer when, for example,
an EOS condition is near or when @buffer is not large enough to hold @size
bytes. The caller should check the result buffer size to get the result size.

When this function returns any other result value than #GST_FLOW_OK, @buffer
will be unchanged.

This is a lowlevel function. Usualy gst_pad_pull_range() is used.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a src #GstPad, returns #GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> The start offset of the buffer
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The length of the buffer
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a pointer to hold the #GstBuffer,
returns #GST_FLOW_ERROR if %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the pad.

MT safe.
</return>
</function>

<function name="gst_pad_get_sticky_event">
<description>
Returns a new reference of the sticky event of type @event_type
from the event.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to get the event from.
</parameter_description>
</parameter>
<parameter name="event_type">
<parameter_description> the #GstEventType that should be retrieved.
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index of the event
</parameter_description>
</parameter>
</parameters>
<return> a #GstEvent of type @event_type or NULL when no
event of @event_type was on @pad. Unref after usage.
</return>
</function>

<function name="gst_pad_get_stream_id">
<description>
Returns the current stream-id for the @pad, or %NULL if none has been
set yet, i.e. the pad has not received a stream-start event yet.

This is a convenience wrapper around gst_pad_get_sticky_event() and
gst_event_parse_stream_start().

The returned stream-id string should be treated as an opaque string, its
contents should not be interpreted.


</description>
<parameters>
<parameter name="pad">
<parameter_description> A source #GstPad
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated copy of the stream-idfor @pad, or %NULL.
g_free() the returned string when no longer needed.

</return>
</function>

<function name="gst_pad_has_current_caps">
<description>
Check if @pad has caps set on it with a #GST_EVENT_CAPS event.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a  #GstPad to check
</parameter_description>
</parameter>
</parameters>
<return> TRUE when @pad has caps associated with it.
</return>
</function>

<function name="gst_pad_is_active">
<description>
Query if a pad is active


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to query
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pad is active.

MT safe.
</return>
</function>

<function name="gst_pad_is_blocked">
<description>
Checks if the pad is blocked or not. This function returns the
last requested state of the pad. It is not certain that the pad
is actually blocking at this point (see gst_pad_is_blocking()).


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to query
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pad is blocked.

MT safe.
</return>
</function>

<function name="gst_pad_is_blocking">
<description>
Checks if the pad is blocking or not. This is a guaranteed state
of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to query
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pad is blocking.

MT safe.
</return>
</function>

<function name="gst_pad_is_linked">
<description>
Checks if a @pad is linked to another pad or not.


</description>
<parameters>
<parameter name="pad">
<parameter_description> pad to check
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pad is linked, FALSE otherwise.

MT safe.
</return>
</function>

<function name="gst_pad_iterate_internal_links">
<description>
Gets an iterator for the pads to which the given pad is linked to inside
of the parent element.

Each #GstPad element yielded by the iterator will have its refcount increased,
so unref after use.

Free-function: gst_iterator_free


</description>
<parameters>
<parameter name="pad">
<parameter_description> the GstPad to get the internal links of.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstIterator of #GstPad or %NULL when the
pad does not have an iterator function configured. Use
gst_iterator_free() after usage.
</return>
</function>

<function name="gst_pad_iterate_internal_links_default">
<description>
Iterate the list of pads to which the given pad is linked to inside of
the parent element.
This is the default handler, and thus returns an iterator of all of the
pads inside the parent element with opposite direction.

The caller must free this iterator after use with gst_iterator_free().


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to get the internal links of.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstPad, or NULL if @pad has no parent. Unref each
returned pad with gst_object_unref().
</return>
</function>

<function name="gst_pad_link">
<description>
Links the source pad and the sink pad.


</description>
<parameters>
<parameter name="srcpad">
<parameter_description> the source #GstPad to link.
</parameter_description>
</parameter>
<parameter name="sinkpad">
<parameter_description> the sink #GstPad to link.
</parameter_description>
</parameter>
</parameters>
<return> A result code indicating if the connection worked or
what went wrong.

MT Safe.
</return>
</function>

<function name="gst_pad_link_full">
<description>
Links the source pad and the sink pad.

This variant of #gst_pad_link provides a more granular control on the
checks being done when linking. While providing some considerable speedups
the caller of this method must be aware that wrong usage of those flags
can cause severe issues. Refer to the documentation of #GstPadLinkCheck
for more information.

MT Safe.


</description>
<parameters>
<parameter name="srcpad">
<parameter_description> the source #GstPad to link.
</parameter_description>
</parameter>
<parameter name="sinkpad">
<parameter_description> the sink #GstPad to link.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the checks to validate when linking
</parameter_description>
</parameter>
</parameters>
<return> A result code indicating if the connection worked or
what went wrong.
</return>
</function>

<function name="gst_pad_mark_reconfigure">
<description>
Mark a pad for needing reconfiguration. The next call to
gst_pad_check_reconfigure() will return %TRUE after this call.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to mark
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_mode_get_name">
<description>
Return the name of a pad mode, for use in debug messages mostly.


</description>
<parameters>
<parameter name="mode">
<parameter_description> the pad mode
</parameter_description>
</parameter>
</parameters>
<return> short mnemonic for pad mode @mode
</return>
</function>

<function name="gst_pad_needs_reconfigure">
<description>
Check the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE
if the flag was set.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag is set on @pad.
</return>
</function>

<function name="gst_pad_new">
<description>
Creates a new pad with the given name in the given direction.
If name is NULL, a guaranteed unique name (across all pads)
will be assigned.
This function makes a copy of the name so you can safely free the name.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the new pad.
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the #GstPadDirection of the pad.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPad, or NULL in case of an error.

MT safe.
</return>
</function>

<function name="gst_pad_new_from_static_template">
<description>
Creates a new pad with the given name from the given static template.
If name is NULL, a guaranteed unique name (across all pads)
will be assigned.
This function makes a copy of the name so you can safely free the name.


</description>
<parameters>
<parameter name="templ">
<parameter_description> the #GstStaticPadTemplate to use
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the element
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPad, or NULL in case of an error.
</return>
</function>

<function name="gst_pad_new_from_template">
<description>
Creates a new pad with the given name from the given template.
If name is NULL, a guaranteed unique name (across all pads)
will be assigned.
This function makes a copy of the name so you can safely free the name.


</description>
<parameters>
<parameter name="templ">
<parameter_description> the pad template to use
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the element
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPad, or NULL in case of an error.
</return>
</function>

<function name="gst_pad_pause_task">
<description>
Pause the task of @pad. This function will also wait until the
function executed by the task is finished if this function is not
called from the task function.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to pause the task of
</parameter_description>
</parameter>
</parameters>
<return> a TRUE if the task could be paused or FALSE when the pad
has no task.
</return>
</function>

<function name="gst_pad_peer_query">
<description>
Performs gst_pad_query() on the peer of @pad.

The caller is responsible for both the allocation and deallocation of
the query structure.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to invoke the peer query on.
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> the #GstQuery to perform.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed. This function returns %FALSE
if @pad has no peer.
</return>
</function>

<function name="gst_pad_peer_query_accept_caps">
<description>
Check if the peer of @pad accepts @caps. If @pad has no peer, this function
returns TRUE.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a  #GstPad to check the peer of
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps to check on the pad
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the peer of @pad can accept the caps or @pad has no peer.
</return>
</function>

<function name="gst_pad_peer_query_caps">
<description>
Gets the capabilities of the peer connected to this pad. Similar to
gst_pad_query_caps().

When called on srcpads @filter contains the caps that
upstream could produce in the order preferred by upstream. When
called on sinkpads @filter contains the caps accepted by
downstream in the preffered order. @filter might be %NULL but
if it is not %NULL the returned caps will be a subset of @filter.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a  #GstPad to get the capabilities of.
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> a #GstCaps filter, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> the caps of the peer pad with incremented ref-count. When there is
no peer pad, this function returns @filter or, when @filter is %NULL, ANY
caps.
</return>
</function>

<function name="gst_pad_peer_query_convert">
<description>
Queries the peer pad of a given sink pad to convert @src_val in @src_format
to @dest_format.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad, on whose peer pad to invoke the convert query on.
Must be a sink pad.
</parameter_description>
</parameter>
<parameter name="src_format">
<parameter_description> a #GstFormat to convert from.
</parameter_description>
</parameter>
<parameter name="src_val">
<parameter_description> a value to convert.
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> the #GstFormat to convert to.
</parameter_description>
</parameter>
<parameter name="dest_val">
<parameter_description> a pointer to the result.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_pad_peer_query_duration">
<description>
Queries the peer pad of a given sink pad for the total stream duration.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad on whose peer pad to invoke the duration query on.
Must be a sink pad.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat requested
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> a location in which to store the total
duration, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_pad_peer_query_position">
<description>
Queries the peer of a given sink pad for the stream position.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad on whose peer to invoke the position query on.
Must be a sink pad.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat requested
</parameter_description>
</parameter>
<parameter name="cur">
<parameter_description> a location in which to store the current
position, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_pad_probe_info_get_buffer">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstPadProbeInfo
</parameter_description>
</parameter>
</parameters>
<return> The #GstBuffer from the probe
</return>
</function>

<function name="gst_pad_probe_info_get_bufferlist">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstPadProbeInfo
</parameter_description>
</parameter>
</parameters>
<return> The #GstBufferlist from the probe
</return>
</function>

<function name="gst_pad_probe_info_get_event">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstPadProbeInfo
</parameter_description>
</parameter>
</parameters>
<return> The #GstEvent from the probe
</return>
</function>

<function name="gst_pad_probe_info_get_query">
<description>

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstPadProbeInfo
</parameter_description>
</parameter>
</parameters>
<return> The #GstQuery from the probe
</return>
</function>

<function name="gst_pad_proxy_query_accept_caps">
<description>
Calls gst_pad_accept_caps() for all internally linked pads of @pad and
returns the intersection of the results.

This function is useful as a default accept caps query function for an element
that can handle any stream format, but requires caps that are acceptable for
all oposite pads.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to proxy.
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> an ACCEPT_CAPS #GstQuery.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @query could be executed
</return>
</function>

<function name="gst_pad_proxy_query_caps">
<description>
Calls gst_pad_query_caps() for all internally linked pads fof @pad and returns
the intersection of the results.

This function is useful as a default caps query function for an element
that can handle any stream format, but requires all its pads to have
the same caps.  Two such elements are tee and adder.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to proxy.
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> a CAPS #GstQuery.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @query could be executed
</return>
</function>

<function name="gst_pad_pull_range">
<description>
Pulls a @buffer from the peer pad or fills up a provided buffer.

This function will first trigger the pad block signal if it was
installed.

When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
function returns the result of gst_pad_get_range() on the peer pad.
See gst_pad_get_range() for a list of return values and for the
semantics of the arguments of this function.

If @buffer points to a variable holding NULL, a valid new #GstBuffer will be
placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
must be freed with gst_buffer_unref() after usage. When this function
returns any other result value, @buffer will still point to NULL.

When @buffer points to a variable that points to a valid #GstBuffer, the
buffer will be filled with the result data when this function returns
#GST_FLOW_OK. When this function returns any other result value,
@buffer will be unchanged. If the provided buffer is larger than @size, only
@size bytes will be filled in the result buffer and its size will be updated
accordingly.

Note that less than @size bytes can be returned in @buffer when, for example,
an EOS condition is near or when @buffer is not large enough to hold @size
bytes. The caller should check the result buffer size to get the result size.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a sink #GstPad, returns GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> The start offset of the buffer
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The length of the buffer
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a pointer to hold the #GstBuffer, returns
GST_FLOW_ERROR if %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the peer pad.

MT safe.
</return>
</function>

<function name="gst_pad_push">
<description>
Pushes a buffer to the peer of @pad.

This function will call installed block probes before triggering any
installed data probes.

The function proceeds calling gst_pad_chain() on the peer pad and returns
the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
be returned.

In all cases, success or failure, the caller loses its reference to @buffer
after calling this function.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a source #GstPad, returns #GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the #GstBuffer to push returns GST_FLOW_ERROR
if not.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the peer pad.

MT safe.
</return>
</function>

<function name="gst_pad_push_event">
<description>
Sends the event to the peer of the given pad. This function is
mainly used by elements to send events to their peer
elements.

This function takes owership of the provided event so you should
gst_event_ref() it if you want to reuse the event after this call.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to push the event to.
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the #GstEvent to send to the pad.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the event was handled.

MT safe.
</return>
</function>

<function name="gst_pad_push_list">
<description>
Pushes a buffer list to the peer of @pad.

This function will call installed block probes before triggering any
installed data probes.

The function proceeds calling the chain function on the peer pad and returns
the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
be returned. If the peer pad does not have any installed chainlist function
every group buffer of the list will be merged into a normal #GstBuffer and
chained via gst_pad_chain().

In all cases, success or failure, the caller loses its reference to @list
after calling this function.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a source #GstPad, returns #GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> the #GstBufferList to push returns GST_FLOW_ERROR
if not.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the peer pad.

MT safe.
</return>
</function>

<function name="gst_pad_query">
<description>
Dispatches a query to a pad. The query should have been allocated by the
caller via one of the type-specific allocation functions. The element that
the pad belongs to is responsible for filling the query with an appropriate
response, which should then be parsed with a type-specific query parsing
function.

Again, the caller is responsible for both the allocation and deallocation of
the query structure.

Please also note that some queries might need a running pipeline to work.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to invoke the default query on.
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> the #GstQuery to perform.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_pad_query_accept_caps">
<description>
Check if the given pad accepts the caps.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to check
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps to check on the pad
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pad can accept the caps.
</return>
</function>

<function name="gst_pad_query_caps">
<description>
Gets the capabilities this pad can produce or consume.
Note that this method doesn't necessarily return the caps set by sending a
gst_event_new_caps() - use gst_pad_get_current_caps() for that instead.
gst_pad_query_caps returns all possible caps a pad can operate with, using
the pad's CAPS query function, If the query fails, this function will return
@filter, if not #NULL, otherwise ANY.

When called on sinkpads @filter contains the caps that
upstream could produce in the order preferred by upstream. When
called on srcpads @filter contains the caps accepted by
downstream in the preffered order. @filter might be %NULL but
if it is not %NULL the returned caps will be a subset of @filter.

Note that this function does not return writable #GstCaps, use
gst_caps_make_writable() before modifying the caps.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a  #GstPad to get the capabilities of.
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> suggested #GstCaps, or NULL
</parameter_description>
</parameter>
</parameters>
<return> the caps of the pad with incremented ref-count.
</return>
</function>

<function name="gst_pad_query_convert">
<description>
Queries a pad to convert @src_val in @src_format to @dest_format.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to invoke the convert query on.
</parameter_description>
</parameter>
<parameter name="src_format">
<parameter_description> a #GstFormat to convert from.
</parameter_description>
</parameter>
<parameter name="src_val">
<parameter_description> a value to convert.
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> the #GstFormat to convert to.
</parameter_description>
</parameter>
<parameter name="dest_val">
<parameter_description> a pointer to the result.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_pad_query_default">
<description>
Invokes the default query handler for the given pad.
The query is sent to all pads internally linked to @pad. Note that
if there are many possible sink pads that are internally linked to
@pad, only one will be sent the query.
Multi-sinkpad elements should implement custom query handlers.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to call the default query handler on.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> the #GstQuery to handle.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query was performed successfully.
</return>
</function>

<function name="gst_pad_query_duration">
<description>
Queries a pad for the total stream duration.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to invoke the duration query on.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat requested
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> a location in which to store the total
duration, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_pad_query_position">
<description>
Queries a pad for the stream position.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to invoke the position query on.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat requested
</parameter_description>
</parameter>
<parameter name="cur">
<parameter_description> A location in which to store the current position, or NULL.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the query could be performed.
</return>
</function>

<function name="gst_pad_remove_probe">
<description>
Remove the probe with @id from @pad.

MT safe.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad with the probe
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the probe id to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_send_event">
<description>
Sends the event to the pad. This function can be used
by applications to send events in the pipeline.

If @pad is a source pad, @event should be an upstream event. If @pad is a
sink pad, @event should be a downstream event. For example, you would not
send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
Furthermore, some downstream events have to be serialized with data flow,
like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
the event needs to be serialized with data flow, this function will take the
pad's stream lock while calling its event function.

To find out whether an event type is upstream, downstream, or downstream and
serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
#GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
#GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
plugin doesn't need to bother itself with this information; the core handles
all necessary locks and checks.

This function takes owership of the provided event so you should
gst_event_ref() it if you want to reuse the event after this call.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad to send the event to.
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the #GstEvent to send to the pad.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the event was handled.
</return>
</function>

<function name="gst_pad_set_activate_function">
<description>
Calls gst_pad_set_activate_function_full() with NULL for the user_data and
notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadActivateFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_activate_function_full">
<description>
Sets the given activate function for @pad. The activate function will
dispatch to gst_pad_activate_mode() to perform the actual activation.
Only makes sense to set on sink pads.

Call this function if your sink pad can start a pull-based task.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="activate">
<parameter_description> the #GstPadActivateFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @activate will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_activatemode_function">
<description>
Calls gst_pad_set_activatemode_function_full() with NULL for the user_data and
notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadActivateModeFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_activatemode_function_full">
<description>
Sets the given activate_mode function for the pad. An activate_mode function
prepares the element for data passing.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="activatemode">
<parameter_description> the #GstPadActivateModeFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @activatemode will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_active">
<description>
Activates or deactivates the given pad.
Normally called from within core state change functions.

If @active, makes sure the pad is active. If it is already active, either in
push or pull mode, just return. Otherwise dispatches to the pad's activate
function to perform the actual activation.

If not @active, calls gst_pad_activate_mode() with the pad's current mode
and a FALSE argument.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to activate or deactivate.
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> whether or not the pad should be active.
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the operation was successful.

MT safe.
</return>
</function>

<function name="gst_pad_set_chain_function">
<description>
Calls gst_pad_set_chain_function_full() with NULL for the user_data and
notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a sink #GstPad.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadChainFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_chain_function_full">
<description>
Sets the given chain function for the pad. The chain function is called to
process a #GstBuffer input buffer. see #GstPadChainFunction for more details.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a sink #GstPad.
</parameter_description>
</parameter>
<parameter name="chain">
<parameter_description> the #GstPadChainFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @chain will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_chain_list_function">
<description>
Calls gst_pad_set_chain_list_function_full() with NULL for the user_data and
notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a sink #GstPad.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadChainListFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_chain_list_function_full">
<description>
Sets the given chain list function for the pad. The chainlist function is
called to process a #GstBufferList input buffer list. See
#GstPadChainListFunction for more details.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a sink #GstPad.
</parameter_description>
</parameter>
<parameter name="chainlist">
<parameter_description> the #GstPadChainListFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @chainlist will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_element_private">
<description>
Set the given private data gpointer on the pad.
This function can only be used by the element that owns the pad.
No locking is performed in this function.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to set the private data of.
</parameter_description>
</parameter>
<parameter name="priv">
<parameter_description> The private data to attach to the pad.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_event_function">
<description>
Calls gst_pad_set_event_function_full() with NULL for the user_data and
notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a #GstPad of either direction.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadEventFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_event_function_full">
<description>
Sets the given event handler for the pad.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad of either direction.
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the #GstPadEventFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @event will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_getrange_function">
<description>
Calls gst_pad_set_getrange_function_full() with NULL for the user_data and
notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a source #GstPad.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadGetRangeFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_getrange_function_full">
<description>
Sets the given getrange function for the pad. The getrange function is
called to produce a new #GstBuffer to start the processing pipeline. see
#GstPadGetRangeFunction for a description of the getrange function.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a source #GstPad.
</parameter_description>
</parameter>
<parameter name="get">
<parameter_description> the #GstPadGetRangeFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @get will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_iterate_internal_links_function">
<description>
Calls gst_pad_set_iterate_internal_links_function_full() with NULL
for the user_data and notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a #GstPad of either direction.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadIterIntLinkFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_iterate_internal_links_function_full">
<description>
Sets the given internal link iterator function for the pad.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad of either direction.
</parameter_description>
</parameter>
<parameter name="iterintlink">
<parameter_description> the #GstPadIterIntLinkFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @iterintlink will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_link_function">
<description>
Calls gst_pad_set_link_function_full() with NULL
for the user_data and notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadLinkFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_link_function_full">
<description>
Sets the given link function for the pad. It will be called when
the pad is linked with another pad.

The return value #GST_PAD_LINK_OK should be used when the connection can be
made.

The return value #GST_PAD_LINK_REFUSED should be used when the connection
cannot be made for some reason.

If @link is installed on a source pad, it should call the #GstPadLinkFunction
of the peer sink pad, if present.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="link">
<parameter_description> the #GstPadLinkFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @link will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_offset">
<description>
Set the offset that will be applied to the running time of @pad.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_query_function">
<description>
Calls gst_pad_set_query_function_full() with NULL for the user_data and
notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a #GstPad of either direction.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadQueryFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_query_function_full">
<description>
Set the given query function for the pad.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad of either direction.
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> the #GstPadQueryFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @query will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_unlink_function">
<description>
Calls gst_pad_set_unlink_function_full() with NULL
for the user_data and notify.

</description>
<parameters>
<parameter name="p">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="f">
<parameter_description> the #GstPadUnlinkFunction to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_set_unlink_function_full">
<description>
Sets the given unlink function for the pad. It will be called
when the pad is unlinked.

</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad.
</parameter_description>
</parameter>
<parameter name="unlink">
<parameter_description> the #GstPadUnlinkFunction to set.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user_data passed to @notify
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify called when @unlink will not be used anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_start_task">
<description>
Starts a task that repeatedly calls @func with @user_data. This function
is mostly used in pad activation functions to start the dataflow.
The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
before @func is called.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to start the task of
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the task function to call
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the task function
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> called when @user_data is no longer referenced
</parameter_description>
</parameter>
</parameters>
<return> a %TRUE if the task could be started.
</return>
</function>

<function name="gst_pad_sticky_events_foreach">
<description>
Iterates all sticky events on @pad and calls @foreach_func for every
event. If @foreach_func returns %FALSE the iteration is immediately stopped.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad that should be used for iteration.
</parameter_description>
</parameter>
<parameter name="foreach_func">
<parameter_description> the #GstPadStickyEventsForeachFunction that
should be called for every event.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> the optional user data.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_stop_task">
<description>
Stop the task of @pad. This function will also make sure that the
function executed by the task will effectively stop if not called
from the GstTaskFunction.

This function will deadlock if called from the GstTaskFunction of
the task. Use gst_task_pause() instead.

Regardless of whether the pad has a task, the stream lock is acquired and
released so as to ensure that streaming through this pad has finished.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to stop the task of
</parameter_description>
</parameter>
</parameters>
<return> a TRUE if the task could be stopped or FALSE on error.
</return>
</function>

<function name="gst_pad_store_sticky_event">
<description>
Store the sticky @event on @pad


</description>
<parameters>
<parameter name="pad">
<parameter_description> a #GstPad
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> a #GstEvent
</parameter_description>
</parameter>
</parameters>
<return> #GST_FLOW_OK on success, #GST_FLOW_FLUSHING when the pad
was flushing or #GST_FLOW_EOS when the pad was EOS.

</return>
</function>

<function name="gst_pad_template_get_caps">
<description>
Gets the capabilities of the pad template.


</description>
<parameters>
<parameter name="templ">
<parameter_description> a #GstPadTemplate to get capabilities of.
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps of the pad template.
Unref after usage.
</return>
</function>

<function name="gst_pad_template_new">
<description>
Creates a new pad template with a name according to the given template
and with the given arguments.


</description>
<parameters>
<parameter name="name_template">
<parameter_description> the name template.
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the #GstPadDirection of the template.
</parameter_description>
</parameter>
<parameter name="presence">
<parameter_description> the #GstPadPresence of the pad.
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps set for the template.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPadTemplate.
</return>
</function>

<function name="gst_pad_template_pad_created">
<description>
Emit the pad-created signal for this template when created by this pad.

</description>
<parameters>
<parameter name="templ">
<parameter_description> a #GstPadTemplate that has been created
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description>   the #GstPad that created it
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pad_unlink">
<description>
Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
signal on both pads.


</description>
<parameters>
<parameter name="srcpad">
<parameter_description> the source #GstPad to unlink.
</parameter_description>
</parameter>
<parameter name="sinkpad">
<parameter_description> the sink #GstPad to unlink.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the pads were unlinked. This function returns FALSE if
the pads were not linked together.

MT safe.
</return>
</function>

<function name="gst_pad_use_fixed_caps">
<description>
A helper function you can use that sets the FIXED_CAPS flag
This way the default CAPS query will always return the negotiated caps
or in case the pad is not negotiated, the padtemplate caps.

The negotiated caps are the caps of the last CAPS event that passed on the
pad. Use this function on a pad that, once it negotiated to a CAPS, cannot
be renegotiated to something else.

</description>
<parameters>
<parameter name="pad">
<parameter_description> the pad to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_param_spec_fraction">
<description>
This function creates a fraction GParamSpec for use by objects/elements
that want to expose properties of fraction type. This function is typically
used in connection with g_object_class_install_property() in a GObjects's
instance_init function.


</description>
<parameters>
<parameter name="name">
<parameter_description> canonical name of the property specified
</parameter_description>
</parameter>
<parameter name="nick">
<parameter_description> nick name for the property specified
</parameter_description>
</parameter>
<parameter name="blurb">
<parameter_description> description of the property specified
</parameter_description>
</parameter>
<parameter name="min_num">
<parameter_description> minimum value (fraction numerator)
</parameter_description>
</parameter>
<parameter name="min_denom">
<parameter_description> minimum value (fraction denominator)
</parameter_description>
</parameter>
<parameter name="max_num">
<parameter_description> maximum value (fraction numerator)
</parameter_description>
</parameter>
<parameter name="max_denom">
<parameter_description> maximum value (fraction denominator)
</parameter_description>
</parameter>
<parameter name="default_num">
<parameter_description> default value (fraction numerator)
</parameter_description>
</parameter>
<parameter name="default_denom">
<parameter_description> default value (fraction denominator)
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags for the property specified
</parameter_description>
</parameter>
</parameters>
<return> a newly created parameter specification
</return>
</function>

<function name="gst_parse_bin_from_description">
<description>
This is a convenience wrapper around gst_parse_launch() to create a
#GstBin from a gst-launch-style pipeline description. See
gst_parse_launch() and the gst-launch man page for details about the
syntax. Ghost pads on the bin for unlinked source or sink pads
within the bin can automatically be created (but only a maximum of
one ghost pad for each direction will be created; if you expect
multiple unlinked source pads or multiple unlinked sink pads
and want them all ghosted, you will have to create the ghost pads
yourself).


</description>
<parameters>
<parameter name="bin_description">
<parameter_description> command line describing the bin
</parameter_description>
</parameter>
<parameter name="ghost_unlinked_pads">
<parameter_description> whether to automatically create ghost pads
for unlinked source or sink pads within the bin
</parameter_description>
</parameter>
<parameter name="err">
<parameter_description> where to store the error message in case of an error, or NULL
</parameter_description>
</parameter>
</parameters>
<return> a newly-created bin,
or %NULL if an error occurred.
</return>
</function>

<function name="gst_parse_bin_from_description_full">
<description>
This is a convenience wrapper around gst_parse_launch() to create a
#GstBin from a gst-launch-style pipeline description. See
gst_parse_launch() and the gst-launch man page for details about the
syntax. Ghost pads on the bin for unlinked source or sink pads
within the bin can automatically be created (but only a maximum of
one ghost pad for each direction will be created; if you expect
multiple unlinked source pads or multiple unlinked sink pads
and want them all ghosted, you will have to create the ghost pads
yourself).


</description>
<parameters>
<parameter name="bin_description">
<parameter_description> command line describing the bin
</parameter_description>
</parameter>
<parameter name="ghost_unlinked_pads">
<parameter_description> whether to automatically create ghost pads
for unlinked source or sink pads within the bin
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a parse context allocated with
gst_parse_context_new(), or %NULL
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> parsing options, or #GST_PARSE_FLAG_NONE
</parameter_description>
</parameter>
<parameter name="err">
<parameter_description> where to store the error message in case of an error, or NULL
</parameter_description>
</parameter>
</parameters>
<return> a newly-created bin, or
%NULL if an error occurred.
</return>
</function>

<function name="gst_parse_context_free">
<description>
Frees a parse context previously allocated with gst_parse_context_new().

</description>
<parameters>
<parameter name="context">
<parameter_description> a #GstParseContext
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_parse_context_get_missing_elements">
<description>
Retrieve missing elements from a previous run of gst_parse_launch_full()
or gst_parse_launchv_full(). Will only return results if an error code
of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.


</description>
<parameters>
<parameter name="context">
<parameter_description> a #GstParseContext
</parameter_description>
</parameter>
</parameters>
<return> a
NULL-terminated array of element factory name strings of missing
elements. Free with g_strfreev() when no longer needed.
</return>
</function>

<function name="gst_parse_context_new">
<description>
Allocates a parse context for use with gst_parse_launch_full() or
gst_parse_launchv_full().

Free-function: gst_parse_context_free


</description>
<parameters>
</parameters>
<return> a newly-allocated parse context. Free with
gst_parse_context_free() when no longer needed.
</return>
</function>

<function name="gst_parse_error_quark">
<description>
Get the error quark used by the parsing subsystem.


</description>
<parameters>
</parameters>
<return> the quark of the parse errors.
</return>
</function>

<function name="gst_parse_launch">
<description>
Create a new pipeline based on command line syntax.
Please note that you might get a return value that is not %NULL even though
the @error is set. In this case there was a recoverable parsing error and you
can try to play the pipeline.


</description>
<parameters>
<parameter name="pipeline_description">
<parameter_description> the command line describing the pipeline
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> the error message in case of an erroneous pipeline.
</parameter_description>
</parameter>
</parameters>
<return> a new element on success, %NULL on failure. If
more than one toplevel element is specified by the @pipeline_description,
all elements are put into a #GstPipeline, which than is returned.
</return>
</function>

<function name="gst_parse_launch_full">
<description>
Create a new pipeline based on command line syntax.
Please note that you might get a return value that is not %NULL even though
the @error is set. In this case there was a recoverable parsing error and you
can try to play the pipeline.


</description>
<parameters>
<parameter name="pipeline_description">
<parameter_description> the command line describing the pipeline
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a parse context allocated with
gst_parse_context_new(), or %NULL
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> parsing options, or #GST_PARSE_FLAG_NONE
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> the error message in case of an erroneous pipeline.
</parameter_description>
</parameter>
</parameters>
<return> a new element on success, %NULL on failure. If
more than one toplevel element is specified by the @pipeline_description,
all elements are put into a #GstPipeline, which then is returned.
</return>
</function>

<function name="gst_parse_launchv">
<description>
Create a new element based on command line syntax.
@error will contain an error message if an erroneuos pipeline is specified.
An error does not mean that the pipeline could not be constructed.


</description>
<parameters>
<parameter name="argv">
<parameter_description> null-terminated array of arguments
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> pointer to a #GError
</parameter_description>
</parameter>
</parameters>
<return> a new element on success and %NULL on failure.
</return>
</function>

<function name="gst_parse_launchv_full">
<description>
Create a new element based on command line syntax.
@error will contain an error message if an erroneous pipeline is specified.
An error does not mean that the pipeline could not be constructed.


</description>
<parameters>
<parameter name="argv">
<parameter_description> null-terminated array of arguments
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a parse context allocated with
gst_parse_context_new(), or %NULL
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> parsing options, or #GST_PARSE_FLAG_NONE
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> pointer to a #GError (which must be initialised to %NULL)
</parameter_description>
</parameter>
</parameters>
<return> a new element on success; on failure, either %NULL
or a partially-constructed bin or element will be returned and @error will
be set (unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then
%NULL will always be returned on failure)
</return>
</function>

<function name="gst_pb_utils_add_codec_description_to_tag_list">
<description>
Adds a codec tag describing the format specified by @caps to @taglist.


</description>
<parameters>
<parameter name="taglist">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
<parameter name="codec_tag">
<parameter_description> a GStreamer codec tag such as #GST_TAG_AUDIO_CODEC,
#GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the (fixed) #GstCaps for which a codec tag should be added.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if a codec tag was added, FALSE otherwise.
</return>
</function>

<function name="gst_pb_utils_get_codec_description">
<description>
Returns a localised (as far as this is possible) string describing the
media format specified in @caps, for use in error dialogs or other messages
to be seen by the user. Should never return NULL unless @caps is invalid.

Also see the convenience function
gst_pb_utils_add_codec_description_to_tag_list().


</description>
<parameters>
<parameter name="caps">
<parameter_description> the (fixed) #GstCaps for which an format description is needed
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated description string, or NULL on error. Free
string with g_free() when not needed any longer.
</return>
</function>

<function name="gst_pb_utils_get_decoder_description">
<description>
Returns a localised string describing an decoder for the format specified
in @caps, for use in error dialogs or other messages to be seen by the user.
Should never return NULL unless @factory_name or @caps are invalid.

This function is mainly for internal use, applications would typically
use gst_missing_plugin_message_get_description() to get a description of
a missing feature from a missing-plugin message.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the (fixed) #GstCaps for which an decoder description is needed
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated description string, or NULL on error. Free
string with g_free() when not needed any longer.
</return>
</function>

<function name="gst_pb_utils_get_element_description">
<description>
Returns a localised string describing the given element, for use in
error dialogs or other messages to be seen by the user. Should never
return NULL unless @factory_name is invalid.

This function is mainly for internal use, applications would typically
use gst_missing_plugin_message_get_description() to get a description of
a missing feature from a missing-plugin message.


</description>
<parameters>
<parameter name="factory_name">
<parameter_description> the name of the element, e.g. &quot;giosrc&quot;
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated description string, or NULL on error. Free
string with g_free() when not needed any longer.
</return>
</function>

<function name="gst_pb_utils_get_encoder_description">
<description>
Returns a localised string describing an encoder for the format specified
in @caps, for use in error dialogs or other messages to be seen by the user.
Should never return NULL unless @factory_name or @caps are invalid.

This function is mainly for internal use, applications would typically
use gst_missing_plugin_message_get_description() to get a description of
a missing feature from a missing-plugin message.


</description>
<parameters>
<parameter name="caps">
<parameter_description> the (fixed) #GstCaps for which an encoder description is needed
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated description string, or NULL on error. Free
string with g_free() when not needed any longer.
</return>
</function>

<function name="gst_pb_utils_get_sink_description">
<description>
Returns a localised string describing a sink element handling the protocol
specified in @protocol, for use in error dialogs or other messages to be
seen by the user. Should never return NULL unless @protocol is invalid.

This function is mainly for internal use, applications would typically
use gst_missing_plugin_message_get_description() to get a description of
a missing feature from a missing-plugin message.


</description>
<parameters>
<parameter name="protocol">
<parameter_description> the protocol the sink element needs to handle, e.g. &quot;http&quot;
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated description string, or NULL on error. Free
string with g_free() when not needed any longer.
</return>
</function>

<function name="gst_pb_utils_get_source_description">
<description>
Returns a localised string describing a source element handling the protocol
specified in @protocol, for use in error dialogs or other messages to be
seen by the user. Should never return NULL unless @protocol is invalid.

This function is mainly for internal use, applications would typically
use gst_missing_plugin_message_get_description() to get a description of
a missing feature from a missing-plugin message.


</description>
<parameters>
<parameter name="protocol">
<parameter_description> the protocol the source element needs to handle, e.g. &quot;http&quot;
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated description string, or NULL on error. Free
string with g_free() when not needed any longer.
</return>
</function>

<function name="gst_pb_utils_init">
<description>
Initialises the base utils support library. This function is not
thread-safe. Applications should call it after calling gst_init(),
plugins should call it from their plugin_init function.

This function may be called multiple times. It will do nothing if the
library has already been initialised.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_pipeline_auto_clock">
<description>
Let @pipeline select a clock automatically. This is the default
behaviour.

Use this function if you previous forced a fixed clock with
gst_pipeline_use_clock() and want to restore the default
pipeline clock selection algorithm.

MT safe.

</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pipeline_get_auto_flush_bus">
<description>
Check if @pipeline will automatically flush messages when going to
the NULL state.


</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
</parameters>
<return> whether the pipeline will automatically flush its bus when
going from READY to NULL state or not.

MT safe.
</return>
</function>

<function name="gst_pipeline_get_bus">
<description>
Gets the #GstBus of @pipeline. The bus allows applications to receive
#GstMessage packets.


</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
</parameters>
<return> a #GstBus, unref after usage.

MT safe.
</return>
</function>

<function name="gst_pipeline_get_clock">
<description>
Gets the current clock used by @pipeline.


</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
</parameters>
<return> a #GstClock, unref after usage.
</return>
</function>

<function name="gst_pipeline_get_delay">
<description>
Get the configured delay (see gst_pipeline_set_delay()).


</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
</parameters>
<return> The configured delay.

MT safe.
</return>
</function>

<function name="gst_pipeline_new">
<description>
Create a new pipeline with the given name.


</description>
<parameters>
<parameter name="name">
<parameter_description> name of new pipeline
</parameter_description>
</parameter>
</parameters>
<return> newly created GstPipeline

MT safe.
</return>
</function>

<function name="gst_pipeline_set_auto_flush_bus">
<description>
Usually, when a pipeline goes from READY to NULL state, it automatically
flushes all pending messages on the bus, which is done for refcounting
purposes, to break circular references.

This means that applications that update state using (async) bus messages
(e.g. do certain things when a pipeline goes from PAUSED to READY) might
not get to see messages when the pipeline is shut down, because they might
be flushed before they can be dispatched in the main thread. This behaviour
can be disabled using this function.

It is important that all messages on the bus are handled when the
automatic flushing is disabled else memory leaks will be introduced.

MT safe.

</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
<parameter name="auto_flush">
<parameter_description> whether or not to automatically flush the bus when
the pipeline goes from READY to NULL state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pipeline_set_clock">
<description>
Set the clock for @pipeline. The clock will be distributed
to all the elements managed by the pipeline.


</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> the clock to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the clock could be set on the pipeline. FALSE if
some element did not accept the clock.

MT safe.
</return>
</function>

<function name="gst_pipeline_set_delay">
<description>
Set the expected delay needed for all elements to perform the
PAUSED to PLAYING state change. @delay will be added to the
base time of the elements so that they wait an additional @delay
amount of time before starting to process buffers and cannot be
#GST_CLOCK_TIME_NONE.

This option is used for tuning purposes and should normally not be
used.

MT safe.

</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
<parameter name="delay">
<parameter_description> the delay
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_pipeline_use_clock">
<description>
Force @pipeline to use the given @clock. The pipeline will
always use the given clock even if new clock providers are added
to this pipeline.

If @clock is NULL all clocking will be disabled which will make
the pipeline run as fast as possible.

MT safe.

</description>
<parameters>
<parameter name="pipeline">
<parameter_description> a #GstPipeline
</parameter_description>
</parameter>
<parameter name="clock">
<parameter_description> the clock to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_add_dependency">
<description>
Make GStreamer aware of external dependencies which affect the feature
set of this plugin (ie. the elements or typefinders associated with it).

GStreamer will re-inspect plugins with external dependencies whenever any
of the external dependencies change. This is useful for plugins which wrap
other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
library and makes visualisations available as GStreamer elements, or a
codec loader which exposes elements and/or caps dependent on what external
codec libraries are currently installed.

</description>
<parameters>
<parameter name="plugin">
<parameter_description> a #GstPlugin
</parameter_description>
</parameter>
<parameter name="env_vars">
<parameter_description> NULL-terminated array of environment variables affecting the
feature set of the plugin (e.g. an environment variable containing
paths where to look for additional modules/plugins of a library),
or NULL. Environment variable names may be followed by a path component
which will be added to the content of the environment variable, e.g.
&quot;HOME/.mystuff/plugins&quot;.
</parameter_description>
</parameter>
<parameter name="paths">
<parameter_description> NULL-terminated array of directories/paths where dependent files
may be.
</parameter_description>
</parameter>
<parameter name="names">
<parameter_description> NULL-terminated array of file names (or file name suffixes,
depending on @flags) to be used in combination with the paths from
@paths and/or the paths extracted from the environment variables in
@env_vars, or NULL.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_add_dependency_simple">
<description>
Make GStreamer aware of external dependencies which affect the feature
set of this plugin (ie. the elements or typefinders associated with it).

GStreamer will re-inspect plugins with external dependencies whenever any
of the external dependencies change. This is useful for plugins which wrap
other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
library and makes visualisations available as GStreamer elements, or a
codec loader which exposes elements and/or caps dependent on what external
codec libraries are currently installed.

Convenience wrapper function for gst_plugin_add_dependency() which
takes simple strings as arguments instead of string arrays, with multiple
arguments separated by predefined delimiters (see above).

</description>
<parameters>
<parameter name="plugin">
<parameter_description> the #GstPlugin
</parameter_description>
</parameter>
<parameter name="env_vars">
<parameter_description> one or more environment variables (separated by ':', ';' or ','),
or NULL. Environment variable names may be followed by a path component
which will be added to the content of the environment variable, e.g.
&quot;HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH&quot;
</parameter_description>
</parameter>
<parameter name="paths">
<parameter_description> one ore more directory paths (separated by ':' or ';' or ','),
or NULL. Example: &quot;/usr/lib/mystuff/plugins&quot;
</parameter_description>
</parameter>
<parameter name="names">
<parameter_description> one or more file names or file name suffixes (separated by commas),
or NULL
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_error_quark">
<description>
Get the error quark.


</description>
<parameters>
</parameters>
<return> The error quark used in GError messages
</return>
</function>

<function name="gst_plugin_feature_check_version">
<description>
Checks whether the given plugin feature is at least
the required version


</description>
<parameters>
<parameter name="feature">
<parameter_description> a feature
</parameter_description>
</parameter>
<parameter name="min_major">
<parameter_description> minimum required major version
</parameter_description>
</parameter>
<parameter name="min_minor">
<parameter_description> minimum required minor version
</parameter_description>
</parameter>
<parameter name="min_micro">
<parameter_description> minimum required micro version
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the plugin feature has at least
the required version, otherwise #FALSE.
</return>
</function>

<function name="gst_plugin_feature_get_name">
<description>
Returns the name of @feature.
For a nameless plugin feature, this returns NULL.


</description>
<parameters>
<parameter name="feature">
<parameter_description> a #GstPluginFeature to get the name of @feature.
</parameter_description>
</parameter>
</parameters>
<return> the name of @feature. MT safe.

</return>
</function>

<function name="gst_plugin_feature_get_plugin">
<description>
Get the plugin that provides this feature.


</description>
<parameters>
<parameter name="feature">
<parameter_description> a feature
</parameter_description>
</parameter>
</parameters>
<return> the plugin that provides this feature, or %NULL.
Unref with gst_object_unref() when no longer needed.
</return>
</function>

<function name="gst_plugin_feature_get_plugin_name">
<description>
Get the name of the plugin that provides this feature.


</description>
<parameters>
<parameter name="feature">
<parameter_description> a feature
</parameter_description>
</parameter>
</parameters>
<return> the name of the plugin that provides this feature, or %NULL if
the feature is not associated with a plugin.

</return>
</function>

<function name="gst_plugin_feature_get_rank">
<description>
Gets the rank of a plugin feature.


</description>
<parameters>
<parameter name="feature">
<parameter_description> a feature
</parameter_description>
</parameter>
</parameters>
<return> The rank of the feature
</return>
</function>

<function name="gst_plugin_feature_list">
<description>
Runs a filter against all plugin features and returns a GList with
the results. If the first flag is set, only the first match is
returned (as a list with a single object).


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to query
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the filter to use
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> only return first match
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the filter function
</parameter_description>
</parameter>
</parameters>
<return> a GList of features, g_list_free after use.
</return>
</function>

<function name="gst_plugin_feature_list_copy">
<description>
Copies the list of features. Caller should call @gst_plugin_feature_list_free
when done with the list.


</description>
<parameters>
<parameter name="list">
<parameter_description> list
of #GstPluginFeature
</parameter_description>
</parameter>
</parameters>
<return> a copy of @list,
with each feature's reference count incremented.
</return>
</function>

<function name="gst_plugin_feature_list_debug">
<description>
Debug the plugin feature names in @list.

</description>
<parameters>
<parameter name="list">
<parameter_description> a #GList of
plugin features
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_feature_list_free">
<description>
Unrefs each member of @list, then frees the list.

</description>
<parameters>
<parameter name="list">
<parameter_description> list
of #GstPluginFeature
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_feature_load">
<description>
Loads the plugin containing @feature if it's not already loaded. @feature is
unaffected; use the return value instead.

Normally this function is used like this:
|[
GstPluginFeature *loaded_feature;

loaded_feature = gst_plugin_feature_load (feature);
// presumably, we're no longer interested in the potentially-unloaded feature
gst_object_unref (feature);
feature = loaded_feature;
]|


</description>
<parameters>
<parameter name="feature">
<parameter_description> the plugin feature to check
</parameter_description>
</parameter>
</parameters>
<return> a reference to the loaded feature, or NULL on error
</return>
</function>

<function name="gst_plugin_feature_rank_compare_func">
<description>
Compares the two given #GstPluginFeature instances. This function can be
used as a #GCompareFunc when sorting by rank and then by name.


</description>
<parameters>
<parameter name="p1">
<parameter_description> a #GstPluginFeature
</parameter_description>
</parameter>
<parameter name="p2">
<parameter_description> a #GstPluginFeature
</parameter_description>
</parameter>
</parameters>
<return> negative value if the rank of p1 &gt; the rank of p2 or the ranks are
equal but the name of p1 comes before the name of p2; zero if the rank
and names are equal; positive value if the rank of p1 &lt; the rank of p2 or the
ranks are equal but the name of p2 comes before the name of p1
</return>
</function>

<function name="gst_plugin_feature_set_name">
<description>
Sets the name of the plugin feature, getting rid of the old name if there was one.

</description>
<parameters>
<parameter name="feature">
<parameter_description> a #GstPluginFeature to set the name of.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the new name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_feature_set_rank">
<description>
Specifies a rank for a plugin feature, so that autoplugging uses
the most appropriate feature.

</description>
<parameters>
<parameter name="feature">
<parameter_description> feature to rank
</parameter_description>
</parameter>
<parameter name="rank">
<parameter_description> rank value - higher number means more priority rank
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_find_feature">
<description>
Find a feature of the given name and type in the given plugin.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the feature from
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> The name of the feature to find
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> The type of the feature to find
</parameter_description>
</parameter>
</parameters>
<return> a GstPluginFeature or NULL if the feature was not found.
</return>
</function>

<function name="gst_plugin_find_feature_by_name">
<description>
Find a feature of the given name in the given plugin.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the feature from
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> The name of the feature to find
</parameter_description>
</parameter>
</parameters>
<return> a GstPluginFeature or NULL if the feature was not found.
</return>
</function>

<function name="gst_plugin_get_cache_data">
<description>
Gets the plugin specific data cache. If it is %NULL there is no cached data
stored. This is the case when the registry is getting rebuilt.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> a plugin
</parameter_description>
</parameter>
</parameters>
<return> The cached data as a #GstStructure or %NULL.
</return>
</function>

<function name="gst_plugin_get_description">
<description>
Get the long descriptive name of the plugin


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get long name of
</parameter_description>
</parameter>
</parameters>
<return> the long name of the plugin
</return>
</function>

<function name="gst_plugin_get_filename">
<description>
get the filename of the plugin


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the filename of
</parameter_description>
</parameter>
</parameters>
<return> the filename of the plugin
</return>
</function>

<function name="gst_plugin_get_license">
<description>
get the license of the plugin


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the license of
</parameter_description>
</parameter>
</parameters>
<return> the license of the plugin
</return>
</function>

<function name="gst_plugin_get_name">
<description>
Get the short name of the plugin


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the name of
</parameter_description>
</parameter>
</parameters>
<return> the name of the plugin
</return>
</function>

<function name="gst_plugin_get_origin">
<description>
get the URL where the plugin comes from


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the origin of
</parameter_description>
</parameter>
</parameters>
<return> the origin of the plugin
</return>
</function>

<function name="gst_plugin_get_package">
<description>
get the package the plugin belongs to.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the package of
</parameter_description>
</parameter>
</parameters>
<return> the package of the plugin
</return>
</function>

<function name="gst_plugin_get_release_date_string">
<description>
Get the release date (and possibly time) in form of a string, if available.

For normal GStreamer plugin releases this will usually just be a date in
the form of &quot;YYYY-MM-DD&quot;, while pre-releases and builds from git may contain
a time component after the date as well, in which case the string will be
formatted like &quot;YYYY-MM-DDTHH:MMZ&quot; (e.g. &quot;2012-04-30T09:30Z&quot;).

There may be plugins that do not have a valid release date set on them.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the release date of
</parameter_description>
</parameter>
</parameters>
<return> the date string of the plugin, or %NULL if not available.
</return>
</function>

<function name="gst_plugin_get_source">
<description>
get the source module the plugin belongs to.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the source of
</parameter_description>
</parameter>
</parameters>
<return> the source of the plugin
</return>
</function>

<function name="gst_plugin_get_version">
<description>
get the version of the plugin


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to get the version of
</parameter_description>
</parameter>
</parameters>
<return> the version of the plugin
</return>
</function>

<function name="gst_plugin_is_loaded">
<description>
queries if the plugin is loaded into memory


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to query
</parameter_description>
</parameter>
</parameters>
<return> TRUE is loaded, FALSE otherwise
</return>
</function>

<function name="gst_plugin_list_feature_filter">
<description>
Runs a filter against all plugin features of the plugins in the given
list and returns a GList with the results.
If the first flag is set, only the first match is
returned (as a list with a single object).


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GList of plugins to query
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the filter function to use
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> only return first match
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the filter function
</parameter_description>
</parameter>
</parameters>
<return> a GList of features, g_list_free after use.
</return>
</function>

<function name="gst_plugin_list_free">
<description>
Unrefs each member of @list, then frees the list.

</description>
<parameters>
<parameter name="list">
<parameter_description> list of #GstPlugin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugin_load">
<description>
Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
untouched. The normal use pattern of this function goes like this:

&lt;programlisting&gt;
GstPlugin *loaded_plugin;
loaded_plugin = gst_plugin_load (plugin);
// presumably, we're no longer interested in the potentially-unloaded plugin
gst_object_unref (plugin);
plugin = loaded_plugin;
&lt;/programlisting&gt;


</description>
<parameters>
<parameter name="plugin">
<parameter_description> plugin to load
</parameter_description>
</parameter>
</parameters>
<return> a reference to a loaded plugin, or NULL on error.
</return>
</function>

<function name="gst_plugin_load_by_name">
<description>
Load the named plugin. Refs the plugin.


</description>
<parameters>
<parameter name="name">
<parameter_description> name of plugin to load
</parameter_description>
</parameter>
</parameters>
<return> a reference to a loaded plugin, or NULL on error.
</return>
</function>

<function name="gst_plugin_load_file">
<description>
Loads the given plugin and refs it.  Caller needs to unref after use.


</description>
<parameters>
<parameter name="filename">
<parameter_description> the plugin filename to load
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> pointer to a NULL-valued GError
</parameter_description>
</parameter>
</parameters>
<return> a reference to the existing loaded GstPlugin, a 
reference to the newly-loaded GstPlugin, or NULL if an error occurred.
</return>
</function>

<function name="gst_plugin_register_static">
<description>
Registers a static plugin, ie. a plugin which is private to an application
or library and contained within the application or library (as opposed to
being shipped as a separate module file).

You must make sure that GStreamer has been initialised (with gst_init() or
via gst_init_get_option_group()) before calling this function.


</description>
<parameters>
<parameter name="major_version">
<parameter_description> the major version number of the GStreamer core that the
plugin was compiled for, you can just use GST_VERSION_MAJOR here
</parameter_description>
</parameter>
<parameter name="minor_version">
<parameter_description> the minor version number of the GStreamer core that the
plugin was compiled for, you can just use GST_VERSION_MINOR here
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a unique name of the plugin (ideally prefixed with an application- or
library-specific namespace prefix in order to avoid name conflicts in
case a similar plugin with the same name ever gets added to GStreamer)
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> description of the plugin
</parameter_description>
</parameter>
<parameter name="init_func">
<parameter_description> pointer to the init function of this plugin.
</parameter_description>
</parameter>
<parameter name="version">
<parameter_description> version string of the plugin
</parameter_description>
</parameter>
<parameter name="license">
<parameter_description> effective license of plugin. Must be one of the approved licenses
(see #GstPluginDesc above) or the plugin will not be registered.
</parameter_description>
</parameter>
<parameter name="source">
<parameter_description> source module plugin belongs to
</parameter_description>
</parameter>
<parameter name="package">
<parameter_description> shipped package plugin belongs to
</parameter_description>
</parameter>
<parameter name="origin">
<parameter_description> URL to provider of plugin
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the plugin was registered correctly, otherwise FALSE.
</return>
</function>

<function name="gst_plugin_register_static_full">
<description>
Registers a static plugin, ie. a plugin which is private to an application
or library and contained within the application or library (as opposed to
being shipped as a separate module file) with a #GstPluginInitFullFunc
which allows user data to be passed to the callback function (useful
for bindings).

You must make sure that GStreamer has been initialised (with gst_init() or
via gst_init_get_option_group()) before calling this function.


</description>
<parameters>
<parameter name="major_version">
<parameter_description> the major version number of the GStreamer core that the
plugin was compiled for, you can just use GST_VERSION_MAJOR here
</parameter_description>
</parameter>
<parameter name="minor_version">
<parameter_description> the minor version number of the GStreamer core that the
plugin was compiled for, you can just use GST_VERSION_MINOR here
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a unique name of the plugin (ideally prefixed with an application- or
library-specific namespace prefix in order to avoid name conflicts in
case a similar plugin with the same name ever gets added to GStreamer)
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> description of the plugin
</parameter_description>
</parameter>
<parameter name="init_full_func">
<parameter_description> pointer to the init function with user data
of this plugin.
</parameter_description>
</parameter>
<parameter name="version">
<parameter_description> version string of the plugin
</parameter_description>
</parameter>
<parameter name="license">
<parameter_description> effective license of plugin. Must be one of the approved licenses
(see #GstPluginDesc above) or the plugin will not be registered.
</parameter_description>
</parameter>
<parameter name="source">
<parameter_description> source module plugin belongs to
</parameter_description>
</parameter>
<parameter name="package">
<parameter_description> shipped package plugin belongs to
</parameter_description>
</parameter>
<parameter name="origin">
<parameter_description> URL to provider of plugin
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> gpointer to user data
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the plugin was registered correctly, otherwise FALSE.
</return>
</function>

<function name="gst_plugin_set_cache_data">
<description>
Adds plugin specific data to cache. Passes the ownership of the structure to
the @plugin.

The cache is flushed every time the registry is rebuilt.

</description>
<parameters>
<parameter name="plugin">
<parameter_description> a plugin
</parameter_description>
</parameter>
<parameter name="cache_data">
<parameter_description> a structure containing the data to cache
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugins_base_version">
<description>
Gets the version number of the GStreamer Plugins Base libraries.

</description>
<parameters>
<parameter name="major">
<parameter_description> pointer to a guint to store the major version number, or %NULL
</parameter_description>
</parameter>
<parameter name="minor">
<parameter_description> pointer to a guint to store the minor version number, or %NULL
</parameter_description>
</parameter>
<parameter name="micro">
<parameter_description> pointer to a guint to store the micro version number, or %NULL
</parameter_description>
</parameter>
<parameter name="nano">
<parameter_description> pointer to a guint to store the nano version number, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_plugins_base_version_string">
<description>
This function returns a string that is useful for describing this version
of GStreamer's gst-plugins-base libraries to the outside world: user agent
strings, logging, about dialogs ...


</description>
<parameters>
</parameters>
<return> a newly allocated string describing this version of gst-plugins-base
</return>
</function>

<function name="gst_poll_add_fd">
<description>
Add a file descriptor to the file descriptor set.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the file descriptor was successfully added to the set.
</return>
</function>

<function name="gst_poll_fd_can_read">
<description>
Check if @fd in @set has data to be read.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the descriptor has data to be read.
</return>
</function>

<function name="gst_poll_fd_can_write">
<description>
Check if @fd in @set can be used for writing.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the descriptor can be used for writing.
</return>
</function>

<function name="gst_poll_fd_ctl_read">
<description>
Control whether the descriptor @fd in @set will be monitored for
readability.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> a new status.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the descriptor was successfully updated.
</return>
</function>

<function name="gst_poll_fd_ctl_write">
<description>
Control whether the descriptor @fd in @set will be monitored for
writability.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> a new status.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the descriptor was successfully updated.
</return>
</function>

<function name="gst_poll_fd_has_closed">
<description>
Check if @fd in @set has closed the connection.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the connection was closed.
</return>
</function>

<function name="gst_poll_fd_has_error">
<description>
Check if @fd in @set has an error.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the descriptor has an error.
</return>
</function>

<function name="gst_poll_fd_ignored">
<description>
Mark @fd as ignored so that the next call to gst_poll_wait() will yield
the same result for @fd as last time. This function must be called if no
operation (read/write/recv/send/etc.) will be performed on @fd before
the next call to gst_poll_wait().

The reason why this is needed is because the underlying implementation
might not allow querying the fd more than once between calls to one of
the re-enabling operations.

</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_poll_fd_init">
<description>
Initializes @fd. Alternatively you can initialize it with
#GST_POLL_FD_INIT.

</description>
<parameters>
<parameter name="fd">
<parameter_description> a #GstPollFD
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_poll_free">
<description>
Free a file descriptor set.

</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_poll_get_read_gpollfd">
<description>
Get a GPollFD for the reading part of the control socket. This is useful when
integrating with a GSource and GMainLoop.

</description>
<parameters>
<parameter name="set">
<parameter_description> a #GstPoll
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a #GPollFD
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_poll_new">
<description>
Create a new file descriptor set. If @controllable, it
is possible to restart or flush a call to gst_poll_wait() with
gst_poll_restart() and gst_poll_set_flushing() respectively.

Free-function: gst_poll_free


</description>
<parameters>
<parameter name="controllable">
<parameter_description> whether it should be possible to control a wait.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPoll, or %NULL in case of an error.
Free with gst_poll_free().
</return>
</function>

<function name="gst_poll_new_timer">
<description>
Create a new poll object that can be used for scheduling cancellable
timeouts.

A timeout is performed with gst_poll_wait(). Multiple timeouts can be
performed from different threads. 

Free-function: gst_poll_free


</description>
<parameters>
</parameters>
<return> a new #GstPoll, or %NULL in case of an error.
Free with gst_poll_free().
</return>
</function>

<function name="gst_poll_read_control">
<description>
Read a byte from the control socket of the controllable @set.
This function is mostly useful for timer #GstPoll objects created with
gst_poll_new_timer(). 


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GstPoll.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success. %FALSE when @set is not controllable or when there
was no byte to read.
</return>
</function>

<function name="gst_poll_remove_fd">
<description>
Remove a file descriptor from the file descriptor set.


</description>
<parameters>
<parameter name="set">
<parameter_description> a file descriptor set.
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the file descriptor was successfully removed from the set.
</return>
</function>

<function name="gst_poll_restart">
<description>
Restart any gst_poll_wait() that is in progress. This function is typically
used after adding or removing descriptors to @set.

If @set is not controllable, then this call will have no effect.

</description>
<parameters>
<parameter name="set">
<parameter_description> a #GstPoll.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_poll_set_controllable">
<description>
When @controllable is %TRUE, this function ensures that future calls to
gst_poll_wait() will be affected by gst_poll_restart() and
gst_poll_set_flushing().


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GstPoll.
</parameter_description>
</parameter>
<parameter name="controllable">
<parameter_description> new controllable state.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the controllability of @set could be updated.
</return>
</function>

<function name="gst_poll_set_flushing">
<description>
When @flushing is %TRUE, this function ensures that current and future calls
to gst_poll_wait() will return -1, with errno set to EBUSY.

Unsetting the flushing state will restore normal operation of @set.

</description>
<parameters>
<parameter name="set">
<parameter_description> a #GstPoll.
</parameter_description>
</parameter>
<parameter name="flushing">
<parameter_description> new flushing state.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_poll_wait">
<description>
Wait for activity on the file descriptors in @set. This function waits up to
the specified @timeout.  A timeout of #GST_CLOCK_TIME_NONE waits forever.

For #GstPoll objects created with gst_poll_new(), this function can only be
called from a single thread at a time.  If called from multiple threads,
-1 will be returned with errno set to EPERM.

This is not true for timer #GstPoll objects created with
gst_poll_new_timer(), where it is allowed to have multiple threads waiting
simultaneously.


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GstPoll.
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout in nanoseconds.
</parameter_description>
</parameter>
</parameters>
<return> The number of #GstPollFD in @set that have activity or 0 when no
activity was detected after @timeout. If an error occurs, -1 is returned
and errno is set.
</return>
</function>

<function name="gst_poll_write_control">
<description>
Write a byte to the control socket of the controllable @set.
This function is mostly useful for timer #GstPoll objects created with
gst_poll_new_timer(). 

It will make any current and future gst_poll_wait() function return with
1, meaning the control socket is set. After an equal amount of calls to
gst_poll_read_control() have been performed, calls to gst_poll_wait() will
block again until their timeout expired.


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GstPoll.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success. %FALSE when @set is not controllable or when the
byte could not be written.
</return>
</function>

<function name="gst_preset_delete_preset">
<description>
Delete the given preset.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> preset name to remove
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for success, %FALSE if e.g. there is no preset with that @name
</return>
</function>

<function name="gst_preset_get_app_dir">
<description>
Gets the directory for application specific presets if set by the
application.


</description>
<parameters>
</parameters>
<return> the directory or %NULL, don't free or modify the string
</return>
</function>

<function name="gst_preset_get_meta">
<description>
Gets the @value for an existing meta data @tag. Meta data @tag names can be
something like e.g. &quot;comment&quot;. Returned values need to be released when done.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> preset name
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> meta data item name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for success, %FALSE if e.g. there is no preset with that @name
or no value for the given @tag
</return>
</function>

<function name="gst_preset_get_preset_names">
<description>
Get a copy of preset names as a NULL terminated string array.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
</parameters>
<return>
list with names, ue g_strfreev() after usage.
</return>
</function>

<function name="gst_preset_get_property_names">
<description>
Get a the names of the GObject properties that can be used for presets.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
</parameters>
<return> an
array of property names which should be freed with g_strfreev() after use.
</return>
</function>

<function name="gst_preset_load_preset">
<description>
Load the given preset.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> preset name to load
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for success, %FALSE if e.g. there is no preset with that @name
</return>
</function>

<function name="gst_preset_rename_preset">
<description>
Renames a preset. If there is already a preset by the @new_name it will be
overwritten.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
<parameter name="old_name">
<parameter_description> current preset name
</parameter_description>
</parameter>
<parameter name="new_name">
<parameter_description> new preset name
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for success, %FALSE if e.g. there is no preset with @old_name
</return>
</function>

<function name="gst_preset_save_preset">
<description>
Save the current object settings as a preset under the given name. If there
is already a preset by this @name it will be overwritten.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> preset name to save
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for success, %FALSE
</return>
</function>

<function name="gst_preset_set_app_dir">
<description>
Sets an extra directory as an absolute path that should be considered when
looking for presets. Any presets in the application dir will shadow the 
system presets.


</description>
<parameters>
<parameter name="app_dir">
<parameter_description> the application specific preset dir
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for success, %FALSE if the dir already has been set
</return>
</function>

<function name="gst_preset_set_meta">
<description>
Sets a new @value for an existing meta data item or adds a new item. Meta
data @tag names can be something like e.g. &quot;comment&quot;. Supplying %NULL for the
@value will unset an existing value.


</description>
<parameters>
<parameter name="preset">
<parameter_description> a #GObject that implements #GstPreset
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> preset name
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> meta data item name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> new value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for success, %FALSE if e.g. there is no preset with that @name
</return>
</function>

<function name="gst_proxy_pad_chain_default">
<description>
Invoke the default chain function of the proxy pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a sink #GstPad, returns GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the #GstBuffer to send, return GST_FLOW_ERROR
if not.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the pad.
</return>
</function>

<function name="gst_proxy_pad_chain_list_default">
<description>
Invoke the default chain list function of the proxy pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a sink #GstPad, returns GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> the #GstBufferList to send, return GST_FLOW_ERROR
if not.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the pad.
</return>
</function>

<function name="gst_proxy_pad_get_internal">
<description>
Get the internal pad of @pad. Unref target pad after usage.

The internal pad of a #GstGhostPad is the internally used
pad of opposite direction, which is used to link to the target.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstProxyPad
</parameter_description>
</parameter>
</parameters>
<return> the target #GstProxyPad, can be NULL.
Unref target pad after usage.
</return>
</function>

<function name="gst_proxy_pad_getrange_default">
<description>
Invoke the default getrange function of the proxy pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> a src #GstPad, returns #GST_FLOW_ERROR if not.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> The start offset of the buffer
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The length of the buffer
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a pointer to hold the #GstBuffer,
returns #GST_FLOW_ERROR if %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn from the pad.
</return>
</function>

<function name="gst_proxy_pad_iterate_internal_links_default">
<description>
Invoke the default iterate internal links function of the proxy pad.


</description>
<parameters>
<parameter name="pad">
<parameter_description> the #GstPad to get the internal links of.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @pad or NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GstIterator of #GstPad, or NULL if @pad has no parent. Unref each
returned pad with gst_object_unref().
</return>
</function>

<function name="gst_query_add_allocation_meta">
<description>
Add @api with @params as one of the supported metadata API to @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="api">
<parameter_description> the metadata API
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> API specific parameters
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_add_allocation_param">
<description>
Add @allocator and its @params as a supported memory allocator.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the memory allocator
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GstAllocationParams
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_add_allocation_pool">
<description>
Set the pool parameters in @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_ALLOCATION.
</parameter_description>
</parameter>
<parameter name="pool">
<parameter_description> the #GstBufferPool
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size
</parameter_description>
</parameter>
<parameter name="min_buffers">
<parameter_description> the min buffers
</parameter_description>
</parameter>
<parameter name="max_buffers">
<parameter_description> the max buffers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_add_buffering_range">
<description>
Set the buffering-ranges array field in @query. The current last
start position of the array should be inferior to @start.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_BUFFERING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> start position of the range
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> stop position of the range
</parameter_description>
</parameter>
</parameters>
<return> a #gboolean indicating if the range was added or not.
</return>
</function>

<function name="gst_query_add_context_type">
<description>
Add a new context type to @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_NEED_CONTEXT type query
</parameter_description>
</parameter>
<parameter name="context_type">
<parameter_description> a context type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_add_scheduling_mode">
<description>
Add @mode as aone of the supported scheduling modes to @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_SCHEDULING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a #GstPadMode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_copy">
<description>
Copies the given query using the copy function of the parent #GstStructure.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="q">
<parameter_description> a #GstQuery to copy.
</parameter_description>
</parameter>
</parameters>
<return> a new copy of @q.
</return>
</function>

<function name="gst_query_find_allocation_meta">
<description>
Check if @query has metadata @api set. When this function returns TRUE,
@index will contain the index where the requested API and the flags can be
found.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="api">
<parameter_description> the metadata API
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> TRUE when @api is in the list of metadata.
</return>
</function>

<function name="gst_query_get_n_allocation_metas">
<description>
Retrieve the number of values currently stored in the
meta API array of the query's structure.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
</parameters>
<return> the metadata API array size as a #guint.
</return>
</function>

<function name="gst_query_get_n_allocation_params">
<description>
Retrieve the number of values currently stored in the
allocator params array of the query's structure.

If no memory allocator is specified, the downstream element can handle
the default memory allocator. The first memory allocator in the query
should be generic and allow mapping to system memory, all following
allocators should be ordered by preference with the preferred one first.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
</parameters>
<return> the allocator array size as a #guint.
</return>
</function>

<function name="gst_query_get_n_allocation_pools">
<description>
Retrieve the number of values currently stored in the
pool array of the query's structure.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
</parameters>
<return> the pool array size as a #guint.
</return>
</function>

<function name="gst_query_get_n_buffering_ranges">
<description>
Retrieve the number of values currently stored in the
buffered-ranges array of the query's structure.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_BUFFERING type query #GstQuery
</parameter_description>
</parameter>
</parameters>
<return> the range array size as a #guint.
</return>
</function>

<function name="gst_query_get_n_context_types">
<description>
Retrieve the number of values currently stored in the
context-types array of the query's structure.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_NEED_CONTEXT type query
</parameter_description>
</parameter>
</parameters>
<return> the context-types array size as a #guint.
</return>
</function>

<function name="gst_query_get_n_scheduling_modes">
<description>
Retrieve the number of values currently stored in the
scheduling mode array of the query's structure.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_SCHEDULING type query #GstQuery
</parameter_description>
</parameter>
</parameters>
<return> the scheduling mode array size as a #guint.
</return>
</function>

<function name="gst_query_get_structure">
<description>
Get the structure of a query.


</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
</parameters>
<return> the #GstStructure of the query. The structure is
still owned by the query and will therefore be freed when the query
is unreffed.
</return>
</function>

<function name="gst_query_has_scheduling_mode">
<description>
Check if @query has scheduling mode set.

&lt;note&gt;
&lt;para&gt;
When checking if upstream supports pull mode, it is usually not
enough to just check for GST_PAD_MODE_PULL with this function, you
also want to check whether the scheduling flags returned by
gst_query_parse_scheduling() have the seeking flag set (meaning
random access is supported, not only sequential pulls).
&lt;/para&gt;
&lt;/note&gt;


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_SCHEDULING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the scheduling mode
</parameter_description>
</parameter>
</parameters>
<return> TRUE when @mode is in the list of scheduling modes.
</return>
</function>

<function name="gst_query_has_scheduling_mode_with_flags">
<description>
Check if @query has scheduling mode set and @flags is set in
query scheduling flags.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_SCHEDULING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the scheduling mode
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstSchedulingFlags
</parameter_description>
</parameter>
</parameters>
<return> TRUE when @mode is in the list of scheduling modes
and @flags are compatible with query flags.
</return>
</function>

<function name="gst_query_is_writable">
<description>
Tests if you can safely write data into a query's structure.

</description>
<parameters>
<parameter name="q">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_make_writable">
<description>
Makes a writable query from the given query.


</description>
<parameters>
<parameter name="q">
<parameter_description> a #GstQuery to make writable
</parameter_description>
</parameter>
</parameters>
<return> a new writable query (possibly same as @q)
</return>
</function>

<function name="gst_query_new_accept_caps">
<description>
Constructs a new query object for querying if @caps are accepted.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="caps">
<parameter_description> a fixed #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_allocation">
<description>
Constructs a new query object for querying the allocation properties.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="caps">
<parameter_description> the negotiated caps
</parameter_description>
</parameter>
<parameter name="need_pool">
<parameter_description> return a pool
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_buffering">
<description>
Constructs a new query object for querying the buffering status of
a stream.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="format">
<parameter_description> the default #GstFormat for the new query
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_caps">
<description>
Constructs a new query object for querying the caps.

The CAPS query should return the allowable caps for a pad in the context
of the element's state, its link to other elements, and the devices or files
it has opened. These caps must be a subset of the pad template caps. In the
NULL state with no links, the CAPS query should ideally return the same caps
as the pad template. In rare circumstances, an object property can affect
the caps returned by the CAPS query, but this is discouraged.

For most filters, the caps returned by CAPS query is directly affected by the
allowed caps on other pads. For demuxers and decoders, the caps returned by
the srcpad's getcaps function is directly related to the stream data. Again,
the CAPS query should return the most specific caps it reasonably can, since this
helps with autoplugging.

The @filter is used to restrict the result caps, only the caps matching
@filter should be returned from the CAPS query. Specifying a filter might
greatly reduce the amount of processing an element needs to do.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="filter">
<parameter_description> a filter
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_context">
<description>
Constructs a new query object for querying the pipeline-local context.

Free-function: gst_query_unref


</description>
<parameters>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_convert">
<description>
Constructs a new convert query object. Use gst_query_unref()
when done with it. A convert query is used to ask for a conversion between
one format and another.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="src_format">
<parameter_description> the source #GstFormat for the new query
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to convert
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> the target #GstFormat
</parameter_description>
</parameter>
</parameters>
<return> a #GstQuery
</return>
</function>

<function name="gst_query_new_custom">
<description>
Constructs a new custom query object. Use gst_query_unref()
when done with it.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="type">
<parameter_description> the query type
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> a structure for the query
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_drain">
<description>
Constructs a new query object for querying the drain state.

Free-function: gst_query_unref


</description>
<parameters>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_duration">
<description>
Constructs a new stream duration query object to query in the given format.
Use gst_query_unref() when done with it. A duration query will give the
total length of the stream.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="format">
<parameter_description> the #GstFormat for this duration query
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_formats">
<description>
Constructs a new query object for querying formats of
the stream.

Free-function: gst_query_unref


</description>
<parameters>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_latency">
<description>
Constructs a new latency query object.
Use gst_query_unref() when done with it. A latency query is usually performed
by sinks to compensate for additional latency introduced by elements in the
pipeline.

Free-function: gst_query_unref


</description>
<parameters>
</parameters>
<return> a #GstQuery
</return>
</function>

<function name="gst_query_new_position">
<description>
Constructs a new query stream position query object. Use gst_query_unref()
when done with it. A position query is used to query the current position
of playback in the streams, in some format.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="format">
<parameter_description> the default #GstFormat for the new query
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_scheduling">
<description>
Constructs a new query object for querying the scheduling properties.

Free-function: gst_query_unref


</description>
<parameters>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_seeking">
<description>
Constructs a new query object for querying seeking properties of
the stream.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="format">
<parameter_description> the default #GstFormat for the new query
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_segment">
<description>
Constructs a new segment query object. Use gst_query_unref()
when done with it. A segment query is used to discover information about the
currently configured segment for playback.

Free-function: gst_query_unref


</description>
<parameters>
<parameter name="format">
<parameter_description> the #GstFormat for the new query
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_new_uri">
<description>
Constructs a new query URI query object. Use gst_query_unref()
when done with it. An URI query is used to query the current URI
that is used by the source or sink.

Free-function: gst_query_unref


</description>
<parameters>
</parameters>
<return> a new #GstQuery
</return>
</function>

<function name="gst_query_parse_accept_caps">
<description>
Get the caps from @query. The caps remains valid as long as @query remains
valid.

</description>
<parameters>
<parameter name="query">
<parameter_description> The query to parse
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> A pointer to the caps
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_accept_caps_result">
<description>
Parse the result from @query and store in @result.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ACCEPT_CAPS type query #GstQuery
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_allocation">
<description>
Parse an allocation query, writing the requested caps in @caps and
whether a pool is needed in @need_pool, if the respective parameters
are non-NULL.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> The #GstCaps
</parameter_description>
</parameter>
<parameter name="need_pool">
<parameter_description> Whether a #GstBufferPool is needed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_buffering_percent">
<description>
Get the percentage of buffered data. This is a value between 0 and 100.
The @busy indicator is %TRUE when the buffering is in progress.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_BUFFERING.
</parameter_description>
</parameter>
<parameter name="busy">
<parameter_description> if buffering is busy, or NULL
</parameter_description>
</parameter>
<parameter name="percent">
<parameter_description> a buffering percent, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_buffering_range">
<description>
Parse an available query, writing the format into @format, and
other results into the passed parameters, if the respective parameters
are non-NULL

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_BUFFERING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format to set for the @segment_start
and @segment_end values, or NULL
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start to set, or NULL
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the stop to set, or NULL
</parameter_description>
</parameter>
<parameter name="estimated_total">
<parameter_description> estimated total amount of download
time, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_buffering_stats">
<description>
Extracts the buffering stats values from @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_BUFFERING.
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a buffering mode, or NULL
</parameter_description>
</parameter>
<parameter name="avg_in">
<parameter_description> the average input rate, or NULL
</parameter_description>
</parameter>
<parameter name="avg_out">
<parameter_description> the average output rat, or NULLe
</parameter_description>
</parameter>
<parameter name="buffering_left">
<parameter_description> amount of buffering time left in
milliseconds, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_caps">
<description>
Get the filter from the caps @query. The caps remains valid as long as
@query remains valid.

</description>
<parameters>
<parameter name="query">
<parameter_description> The query to parse
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> A pointer to the caps filter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_caps_result">
<description>
Get the caps result from @query. The caps remains valid as long as
@query remains valid.

</description>
<parameters>
<parameter name="query">
<parameter_description> The query to parse
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> A pointer to the caps
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_context">
<description>
Get the context from the context @query. The context remains valid as long as
@query remains valid.

</description>
<parameters>
<parameter name="query">
<parameter_description> The query to parse
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> A pointer to store the #GstContext
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_convert">
<description>
Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
and @dest_value may be NULL, in which case that value is omitted.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="src_format">
<parameter_description> the storage for the #GstFormat of the
source value, or NULL
</parameter_description>
</parameter>
<parameter name="src_value">
<parameter_description> the storage for the source value, or NULL
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> the storage for the #GstFormat of the
destination value, or NULL
</parameter_description>
</parameter>
<parameter name="dest_value">
<parameter_description> the storage for the destination value,
or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_duration">
<description>
Parse a duration query answer. Write the format of the duration into @format,
and the value into @duration, if the respective variables are non-NULL.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the storage for the #GstFormat of the duration
value, or NULL.
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the storage for the total duration, or NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_latency">
<description>
Parse a latency query answer.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="live">
<parameter_description> storage for live or NULL
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> the storage for the min latency or NULL
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> the storage for the max latency or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_n_formats">
<description>
Parse the number of formats in the formats @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="n_formats">
<parameter_description> the number of formats in this query.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_nth_allocation_meta">
<description>
Parse an available query and get the metadata API
at @index of the metadata API array.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the metadata API array to read
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> API specific flags
</parameter_description>
</parameter>
</parameters>
<return> a #GType of the metadata API at @index.
</return>
</function>

<function name="gst_query_parse_nth_allocation_param">
<description>
Parse an available query and get the alloctor and its params
at @index of the allocator array.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the allocator array to read
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> variable to hold the result
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> parameters for the allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_nth_allocation_pool">
<description>
Get the pool parameters in @query.

Unref @pool with gst_object_unref() when it's not needed any more.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_ALLOCATION.
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> index to parse
</parameter_description>
</parameter>
<parameter name="pool">
<parameter_description> the #GstBufferPool
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size
</parameter_description>
</parameter>
<parameter name="min_buffers">
<parameter_description> the min buffers
</parameter_description>
</parameter>
<parameter name="max_buffers">
<parameter_description> the max buffers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_nth_buffering_range">
<description>
Parse an available query and get the start and stop values stored
at the @index of the buffered ranges array.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_BUFFERING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the buffered-ranges array to read
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start position to set, or NULL
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the stop position to set, or NULL
</parameter_description>
</parameter>
</parameters>
<return> a #gboolean indicating if the parsing succeeded.
</return>
</function>

<function name="gst_query_parse_nth_context_type">
<description>
Parse a context type from an existing GST_QUERY_NEED_CONTEXT query
from @index.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_NEED_CONTEXT type query
</parameter_description>
</parameter>
<parameter name="context_type">
<parameter_description> the context type, or NULL
</parameter_description>
</parameter>
</parameters>
<return> a #gboolean indicating if the parsing succeeded.
</return>
</function>

<function name="gst_query_parse_nth_format">
<description>
Parse the format query and retrieve the @nth format from it into
@format. If the list contains less elements than @nth, @format will be
set to GST_FORMAT_UNDEFINED.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> the nth format to retrieve.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> a pointer to store the nth format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_nth_scheduling_mode">
<description>
Parse an available query and get the scheduling mode
at @index of the scheduling modes array.


</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_SCHEDULING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the scheduling modes array to read
</parameter_description>
</parameter>
</parameters>
<return> a #GstPadMode of the scheduling mode at @index.
</return>
</function>

<function name="gst_query_parse_position">
<description>
Parse a position query, writing the format into @format, and the position
into @cur, if the respective parameters are non-NULL.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the storage for the #GstFormat of the
position values (may be NULL)
</parameter_description>
</parameter>
<parameter name="cur">
<parameter_description> the storage for the current position (may be NULL)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_scheduling">
<description>
Set the scheduling properties.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_SCHEDULING.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstSchedulingFlags
</parameter_description>
</parameter>
<parameter name="minsize">
<parameter_description> the suggested minimum size of pull requests
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> the suggested maximum size of pull requests:
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> the suggested alignment of pull requests
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_seeking">
<description>
Parse a seeking query, writing the format into @format, and
other results into the passed parameters, if the respective parameters
are non-NULL

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_SEEKING type query #GstQuery
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format to set for the @segment_start
and @segment_end values, or NULL
</parameter_description>
</parameter>
<parameter name="seekable">
<parameter_description> the seekable flag to set, or NULL
</parameter_description>
</parameter>
<parameter name="segment_start">
<parameter_description> the segment_start to set, or NULL
</parameter_description>
</parameter>
<parameter name="segment_end">
<parameter_description> the segment_end to set, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_segment">
<description>
Parse a segment query answer. Any of @rate, @format, @start_value, and
@stop_value may be NULL, which will cause this value to be omitted.

See gst_query_set_segment() for an explanation of the function arguments.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> the storage for the rate of the segment, or NULL
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the storage for the #GstFormat of the values,
or NULL
</parameter_description>
</parameter>
<parameter name="start_value">
<parameter_description> the storage for the start value, or NULL
</parameter_description>
</parameter>
<parameter name="stop_value">
<parameter_description> the storage for the stop value, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_parse_uri">
<description>
Parse an URI query, writing the URI into @uri as a newly
allocated string, if the respective parameters are non-NULL.
Free the string with g_free() after usage.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the storage for the current URI
(may be NULL)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_ref">
<description>
Increases the refcount of the given query by one.


</description>
<parameters>
<parameter name="q">
<parameter_description> a #GstQuery to increase the refcount of.
</parameter_description>
</parameter>
</parameters>
<return> @q
</return>
</function>

<function name="gst_query_remove_nth_allocation_meta">
<description>
Remove the metadata API at @index of the metadata API array.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the metadata API array to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_remove_nth_allocation_param">
<description>
Remove the allocation param at @index of the allocation param array.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the allocation param array to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_remove_nth_allocation_pool">
<description>
Remove the allocation pool at @index of the allocation pool array.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the allocation pool array to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_replace">
<description>
Modifies a pointer to a #GstQuery to point to a different #GstQuery. The
modification is done atomically (so this is useful for ensuring thread safety
in some cases), and the reference counts are updated appropriately (the old
query is unreffed, the new one is reffed).

Either @new_query or the #GstQuery pointed to by @old_query may be NULL.


</description>
<parameters>
<parameter name="old_query">
<parameter_description> pointer to a pointer to a #GstQuery
to be replaced.
</parameter_description>
</parameter>
<parameter name="new_query">
<parameter_description> pointer to a #GstQuery that will
replace the query pointed to by @old_query.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @new_query was different from @old_query
</return>
</function>

<function name="gst_query_set_accept_caps_result">
<description>
Set @result as the result for the @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ACCEPT_CAPS type query #GstQuery
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> the result to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_buffering_percent">
<description>
Set the percentage of buffered data. This is a value between 0 and 100.
The @busy indicator is %TRUE when the buffering is in progress.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_BUFFERING.
</parameter_description>
</parameter>
<parameter name="busy">
<parameter_description> if buffering is busy
</parameter_description>
</parameter>
<parameter name="percent">
<parameter_description> a buffering percent
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_buffering_range">
<description>
Set the available query result fields in @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format to set for the @start and @stop values
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start to set
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the stop to set
</parameter_description>
</parameter>
<parameter name="estimated_total">
<parameter_description> estimated total amount of download time
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_buffering_stats">
<description>
Configures the buffering stats values in @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_BUFFERING.
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a buffering mode
</parameter_description>
</parameter>
<parameter name="avg_in">
<parameter_description> the average input rate
</parameter_description>
</parameter>
<parameter name="avg_out">
<parameter_description> the average output rate
</parameter_description>
</parameter>
<parameter name="buffering_left">
<parameter_description> amount of buffering time left in milliseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_caps_result">
<description>
Set the @caps result in @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> The query to use
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> A pointer to the caps
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_context">
<description>
Answer a context query by setting the requested context.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery with query type GST_QUERY_CONTEXT
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the requested #GstContext
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_convert">
<description>
Answer a convert query by setting the requested values.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="src_format">
<parameter_description> the source #GstFormat
</parameter_description>
</parameter>
<parameter name="src_value">
<parameter_description> the source value
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> the destination #GstFormat
</parameter_description>
</parameter>
<parameter name="dest_value">
<parameter_description> the destination value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_duration">
<description>
Answer a duration query by setting the requested value in the given format.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat for the duration
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the stream
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_formats">
<description>
Set the formats query result fields in @query. The number of formats passed
must be equal to @n_formats.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="n_formats">
<parameter_description> the number of formats to set.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> A number of @GstFormats equal to @n_formats.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_formatsv">
<description>
Set the formats query result fields in @query. The number of formats passed
in the @formats array must be equal to @n_formats.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="n_formats">
<parameter_description> the number of formats to set.
</parameter_description>
</parameter>
<parameter name="formats">
<parameter_description> an array containing @n_formats
@GstFormat values.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_latency">
<description>
Answer a latency query by setting the requested values in the given format.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="live">
<parameter_description> if there is a live element upstream
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> the minimal latency of the upstream elements
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> the maximal latency of the upstream elements
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_nth_allocation_param">
<description>
Parse an available query and get the alloctor and its params
at @index of the allocator array.

</description>
<parameters>
<parameter name="query">
<parameter_description> a GST_QUERY_ALLOCATION type query #GstQuery
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> position in the allocator array to set
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> new allocator to set
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> parameters for the allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_nth_allocation_pool">
<description>
Set the pool parameters in @query.

</description>
<parameters>
<parameter name="index">
<parameter_description> index to modify
</parameter_description>
</parameter>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_ALLOCATION.
</parameter_description>
</parameter>
<parameter name="pool">
<parameter_description> the #GstBufferPool
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size
</parameter_description>
</parameter>
<parameter name="min_buffers">
<parameter_description> the min buffers
</parameter_description>
</parameter>
<parameter name="max_buffers">
<parameter_description> the max buffers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_position">
<description>
Answer a position query by setting the requested value in the given format.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery with query type GST_QUERY_POSITION
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the requested #GstFormat
</parameter_description>
</parameter>
<parameter name="cur">
<parameter_description> the position to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_scheduling">
<description>
Set the scheduling properties.

</description>
<parameters>
<parameter name="query">
<parameter_description> A valid #GstQuery of type GST_QUERY_SCHEDULING.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstSchedulingFlags
</parameter_description>
</parameter>
<parameter name="minsize">
<parameter_description> the suggested minimum size of pull requests
</parameter_description>
</parameter>
<parameter name="maxsize">
<parameter_description> the suggested maximum size of pull requests
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> the suggested alignment of pull requests
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_seeking">
<description>
Set the seeking query result fields in @query.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format to set for the @segment_start and @segment_end values
</parameter_description>
</parameter>
<parameter name="seekable">
<parameter_description> the seekable flag to set
</parameter_description>
</parameter>
<parameter name="segment_start">
<parameter_description> the segment_start to set
</parameter_description>
</parameter>
<parameter name="segment_end">
<parameter_description> the segment_end to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_segment">
<description>
Answer a segment query by setting the requested values. The normal
playback segment of a pipeline is 0 to duration at the default rate of
1.0. If a seek was performed on the pipeline to play a different
segment, this query will return the range specified in the last seek.

@start_value and @stop_value will respectively contain the configured
playback range start and stop values expressed in @format.
The values are always between 0 and the duration of the media and
@start_value &lt;= @stop_value. @rate will contain the playback rate. For
negative rates, playback will actually happen from @stop_value to
@start_value.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> the rate of the segment
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstFormat of the segment values (@start_value and @stop_value)
</parameter_description>
</parameter>
<parameter name="start_value">
<parameter_description> the start value
</parameter_description>
</parameter>
<parameter name="stop_value">
<parameter_description> the stop value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_set_uri">
<description>
Answer a URI query by setting the requested URI.

</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery with query type GST_QUERY_URI
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the URI to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_type_get_flags">
<description>
Gets the #GstQueryTypeFlags associated with @type.


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GstQueryType
</parameter_description>
</parameter>
</parameters>
<return> a #GstQueryTypeFlags.
</return>
</function>

<function name="gst_query_type_get_name">
<description>
Get a printable name for the given query type. Do not modify or free.


</description>
<parameters>
<parameter name="type">
<parameter_description> the query type
</parameter_description>
</parameter>
</parameters>
<return> a reference to the static name of the query.
</return>
</function>

<function name="gst_query_type_to_quark">
<description>
Get the unique quark for the given query type.


</description>
<parameters>
<parameter name="type">
<parameter_description> the query type
</parameter_description>
</parameter>
</parameters>
<return> the quark associated with the query type
</return>
</function>

<function name="gst_query_unref">
<description>
Decreases the refcount of the query. If the refcount reaches 0, the query
will be freed.

</description>
<parameters>
<parameter name="q">
<parameter_description> a #GstQuery to decrease the refcount of.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_query_writable_structure">
<description>
Get the structure of a query. This method should be called with a writable
@query so that the returned structure is guranteed to be writable.


</description>
<parameters>
<parameter name="query">
<parameter_description> a #GstQuery
</parameter_description>
</parameter>
</parameters>
<return> the #GstStructure of the query. The structure is
still owned by the query and will therefore be freed when the query
is unreffed.
</return>
</function>

<function name="gst_queue_array_drop_element">
<description>
Drops the queue element at position @idx from queue @array.


</description>
<parameters>
<parameter name="array">
<parameter_description> a #GstQueueArray object
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> index to drop
</parameter_description>
</parameter>
</parameters>
<return> the dropped element

</return>
</function>

<function name="gst_queue_array_find">
<description>
Finds an element in the queue @array, either by comparing every element
with @func or by looking up @data if no compare function @func is provided,
and returning the index of the found element.

Note that the index is not 0-based, but an internal index number with a
random offset. The index can be used in connection with
gst_queue_array_drop_element(). FIXME: return index 0-based and make
_drop_element() take a 0-based index.


</description>
<parameters>
<parameter name="array">
<parameter_description> a #GstQueueArray object
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> comparison function, or %NULL to find @data by value
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data for comparison function
</parameter_description>
</parameter>
</parameters>
<return> Index of the found element or -1 if nothing was found.

</return>
</function>

<function name="gst_queue_array_free">
<description>
Frees queue @array and all memory associated to it.


</description>
<parameters>
<parameter name="array">
<parameter_description> a #GstQueueArray object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_queue_array_get_length">
<description>
Returns the length of the queue @array


</description>
<parameters>
<parameter name="array">
<parameter_description> a #GstQueueArray object
</parameter_description>
</parameter>
</parameters>
<return> the length of the queue @array.

</return>
</function>

<function name="gst_queue_array_is_empty">
<description>
Checks if the queue @array is empty.


</description>
<parameters>
<parameter name="array">
<parameter_description> a #GstQueueArray object
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the queue @array is empty

</return>
</function>

<function name="gst_queue_array_new">
<description>
Allocates a new #GstQueueArray object with an initial
queue size of @initial_size.


</description>
<parameters>
<parameter name="initial_size">
<parameter_description> Initial size of the new queue
</parameter_description>
</parameter>
</parameters>
<return> a new #GstQueueArray object

</return>
</function>

<function name="gst_queue_array_pop_head">
<description>
Returns and head of the queue @array and does not
remove it from the queue.


</description>
<parameters>
<parameter name="array">
<parameter_description> a #GstQueueArray object
</parameter_description>
</parameter>
</parameters>
<return> The head of the queue

</return>
</function>

<function name="gst_queue_array_push_tail">
<description>
Pushes @data to the tail of the queue @array.


</description>
<parameters>
<parameter name="array">
<parameter_description> a #GstQueueArray object
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> object to push
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_registry_add_feature">
<description>
Add the feature to the registry. The feature-added signal will be emitted.
This function sinks @feature.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to add the plugin to
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> the feature to add
</parameter_description>
</parameter>
</parameters>
<return> TRUE on success.

MT safe.
</return>
</function>

<function name="gst_registry_add_path">
<description>
Add the given path to the registry. The syntax of the
path is specific to the registry. If the path has already been
added, do nothing.

</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to add the path to
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the path to add to the registry
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_registry_add_plugin">
<description>
Add the plugin to the registry. The plugin-added signal will be emitted.
This function will sink @plugin.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to add the plugin to
</parameter_description>
</parameter>
<parameter name="plugin">
<parameter_description> the plugin to add
</parameter_description>
</parameter>
</parameters>
<return> TRUE on success.

MT safe.
</return>
</function>

<function name="gst_registry_binary_read_cache">
<description>
Read the contents of the binary cache file at @location into @registry.


</description>
<parameters>
<parameter name="registry">
<parameter_description> a #GstRegistry
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> a filename
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_registry_binary_write_cache">
<description>
Write the @registry to a cache to file at given @location.


</description>
<parameters>
<parameter name="registry">
<parameter_description> a #GstRegistry
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> a filename
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_registry_check_feature_version">
<description>
Checks whether a plugin feature by the given name exists in
@registry and whether its version is at least the
version required.


</description>
<parameters>
<parameter name="registry">
<parameter_description> a #GstRegistry
</parameter_description>
</parameter>
<parameter name="feature_name">
<parameter_description> the name of the feature (e.g. &quot;oggdemux&quot;)
</parameter_description>
</parameter>
<parameter name="min_major">
<parameter_description> the minimum major version number
</parameter_description>
</parameter>
<parameter name="min_minor">
<parameter_description> the minimum minor version number
</parameter_description>
</parameter>
<parameter name="min_micro">
<parameter_description> the minimum micro version number
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the feature could be found and the version is
the same as the required version or newer, and #FALSE otherwise.
</return>
</function>

<function name="gst_registry_feature_filter">
<description>
Runs a filter against all features of the plugins in the registry
and returns a GList with the results.
If the first flag is set, only the first match is
returned (as a list with a single object).


</description>
<parameters>
<parameter name="registry">
<parameter_description> registry to query
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the filter to use
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> only return first match
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the filter function
</parameter_description>
</parameter>
</parameters>
<return> a #GList of
#GstPluginFeature. Use gst_plugin_feature_list_free() after usage.

MT safe.
</return>
</function>

<function name="gst_registry_find_feature">
<description>
Find the pluginfeature with the given name and type in the registry.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to search
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the pluginfeature name to find
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the pluginfeature type to find
</parameter_description>
</parameter>
</parameters>
<return> the pluginfeature with the given name and type
or NULL if the plugin was not found. gst_object_unref() after usage.

MT safe.
</return>
</function>

<function name="gst_registry_find_plugin">
<description>
Find the plugin with the given name in the registry.
The plugin will be reffed; caller is responsible for unreffing.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to search
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the plugin name to find
</parameter_description>
</parameter>
</parameters>
<return> the plugin with the given name or NULL if the
plugin was not found. gst_object_unref() after usage.

MT safe.
</return>
</function>

<function name="gst_registry_fork_is_enabled">
<description>
By default GStreamer will perform scanning and rebuilding of the
registry file using a helper child process.

Applications might want to disable this behaviour with the
gst_registry_fork_set_enabled() function, in which case new plugins
are scanned (and loaded) into the application process.


</description>
<parameters>
</parameters>
<return> %TRUE if GStreamer will use the child helper process when
rebuilding the registry.
</return>
</function>

<function name="gst_registry_fork_set_enabled">
<description>
Applications might want to disable/enable spawning of a child helper process
when rebuilding the registry. See gst_registry_fork_is_enabled() for more
information.

</description>
<parameters>
<parameter name="enabled">
<parameter_description> whether rebuilding the registry can use a temporary child helper process.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_registry_get">
<description>
Retrieves the singleton plugin registry. The caller does not own a
reference on the registry, as it is alive as long as GStreamer is
initialized.


</description>
<parameters>
</parameters>
<return> the #GstRegistry.
</return>
</function>

<function name="gst_registry_get_feature_list">
<description>
Retrieves a #GList of #GstPluginFeature of @type.


</description>
<parameters>
<parameter name="registry">
<parameter_description> a #GstRegistry
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GType.
</parameter_description>
</parameter>
</parameters>
<return> a #GList of
#GstPluginFeature of @type. Use gst_plugin_feature_list_free() after use

MT safe.
</return>
</function>

<function name="gst_registry_get_feature_list_by_plugin">
<description>
Retrieves a #GList of features of the plugin with name @name.


</description>
<parameters>
<parameter name="registry">
<parameter_description> a #GstRegistry.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a plugin name.
</parameter_description>
</parameter>
</parameters>
<return> a #GList of
#GstPluginFeature. Use gst_plugin_feature_list_free() after usage.
</return>
</function>

<function name="gst_registry_get_feature_list_cookie">
<description>
Returns the registrys feature list cookie. This changes
every time a feature is added or removed from the registry.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry
</parameter_description>
</parameter>
</parameters>
<return> the feature list cookie.
</return>
</function>

<function name="gst_registry_get_path_list">
<description>
Get the list of paths for the given registry.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to get the pathlist of
</parameter_description>
</parameter>
</parameters>
<return> A #GList of paths as
strings. g_list_free after use.

MT safe.
</return>
</function>

<function name="gst_registry_get_plugin_list">
<description>
Get a copy of all plugins registered in the given registry. The refcount
of each element in the list in incremented.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to search
</parameter_description>
</parameter>
</parameters>
<return> a #GList of #GstPlugin.
Use gst_plugin_list_free() after usage.

MT safe.
</return>
</function>

<function name="gst_registry_lookup">
<description>
Look up a plugin in the given registry with the given filename.
If found, plugin is reffed.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to look up in
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the name of the file to look up
</parameter_description>
</parameter>
</parameters>
<return> the #GstPlugin if found, or NULL if not.
gst_object_unref() after usage.
</return>
</function>

<function name="gst_registry_lookup_feature">
<description>
Find a #GstPluginFeature with @name in @registry.


</description>
<parameters>
<parameter name="registry">
<parameter_description> a #GstRegistry
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a #GstPluginFeature name
</parameter_description>
</parameter>
</parameters>
<return> a #GstPluginFeature with its refcount incremented,
use gst_object_unref() after usage.

MT safe.
</return>
</function>

<function name="gst_registry_plugin_filter">
<description>
Runs a filter against all plugins in the registry and returns a #GList with
the results. If the first flag is set, only the first match is
returned (as a list with a single object).
Every plugin is reffed; use gst_plugin_list_free() after use, which
will unref again.


</description>
<parameters>
<parameter name="registry">
<parameter_description> registry to query
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the filter to use
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> only return first match
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to the filter function
</parameter_description>
</parameter>
</parameters>
<return> a #GList of #GstPlugin.
Use gst_plugin_list_free() after usage.

MT safe.
</return>
</function>

<function name="gst_registry_remove_feature">
<description>
Remove the feature from the registry.

MT safe.

</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to remove the feature from
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> the feature to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_registry_remove_plugin">
<description>
Remove the plugin from the registry.

MT safe.

</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to remove the plugin from
</parameter_description>
</parameter>
<parameter name="plugin">
<parameter_description> the plugin to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_registry_scan_path">
<description>
Scan the given path for plugins to add to the registry. The syntax of the
path is specific to the registry.


</description>
<parameters>
<parameter name="registry">
<parameter_description> the registry to add found plugins to
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the path to scan
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if registry changed
</return>
</function>

<function name="gst_riff_create_video_caps">
<description>

</description>
<parameters>
<parameter name="codec_fcc">
<parameter_description> fourCC codec for this codec.
</parameter_description>
</parameter>
<parameter name="strh">
<parameter_description> pointer to the strh stream header structure.
</parameter_description>
</parameter>
<parameter name="strf">
<parameter_description> pointer to the strf stream header structure, including any
data that is within the range of strf.size, but excluding any
additional data withint this chunk but outside strf.size.
</parameter_description>
</parameter>
<parameter name="strf_data">
<parameter_description> a #GstBuffer containing the additional data in the strf
chunk outside reach of strf.size. Ususally a palette.
</parameter_description>
</parameter>
<parameter name="strd_data">
<parameter_description> a #GstBuffer containing the data in the strd stream header
chunk. Usually codec initialization data.
</parameter_description>
</parameter>
<parameter name="codec_name">
<parameter_description> if given, will be filled with a human-readable codec name.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_riff_init">
<description>
Initialize riff library.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_riff_parse_chunk">
<description>
Reads a single chunk.


</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging).
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> input buffer.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset in the buffer in the caller. Is incremented
by the read size by this function.
</parameter_description>
</parameter>
<parameter name="fourcc">
<parameter_description> fourcc (returned by this function0 of the chunk.
</parameter_description>
</parameter>
<parameter name="chunk_data">
<parameter_description> buffer (returned by the function) containing the
chunk data, which may be NULL if chunksize == 0
</parameter_description>
</parameter>
</parameters>
<return> FALSE on error, TRUE otherwise
</return>
</function>

<function name="gst_riff_parse_file_header">
<description>
Reads the first few bytes from the provided buffer, checks
if this stream is a RIFF stream, and determines document type.
This function takes ownership of @buf so it should not be used anymore
after calling this function.


</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging/error).
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> input buffer from which the file header will be parsed,
should be at least 12 bytes long.
</parameter_description>
</parameter>
<parameter name="doctype">
<parameter_description> a fourcc (returned by this function) to indicate the
type of document (according to the header).
</parameter_description>
</parameter>
</parameters>
<return> FALSE if this is not a RIFF stream (in which case the
caller should error out; we already throw an error), or TRUE
if it is.
</return>
</function>

<function name="gst_riff_parse_info">
<description>
Parses stream metadata from input data.

</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging/error).
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> input data to be used for parsing, stripped from header.
</parameter_description>
</parameter>
<parameter name="taglist">
<parameter_description> a pointer to a taglist (returned by this function)
containing information about this stream. May be
NULL if no supported tags were found.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_riff_parse_strf_auds">
<description>
Parses an audio stream´s strf structure plus optionally some
extradata from input data. This function takes ownership of @buf.
use.


</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging/error).
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> input data to be used for parsing, stripped from header.
</parameter_description>
</parameter>
<parameter name="strf">
<parameter_description> a pointer (returned by this function) to a filled-in
strf/auds structure. Caller should free it.
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> a pointer (returned by this function) to a buffer
containing extradata for this particular stream (e.g.
codec initialization data).
</parameter_description>
</parameter>
</parameters>
<return> TRUE if parsing succeeded, otherwise FALSE. The stream
should be skipped on error, but it is not fatal.
</return>
</function>

<function name="gst_riff_parse_strf_iavs">
<description>
Parses a interleaved (also known as &quot;complex&quot;)  stream´s strf
structure plus optionally some extradata from input data. This
function takes ownership of @buf.


</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging/error).
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> input data to be used for parsing, stripped from header.
</parameter_description>
</parameter>
<parameter name="strf">
<parameter_description> a pointer (returned by this function) to a filled-in
strf/iavs structure. Caller should free it.
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> a pointer (returned by this function) to a buffer
containing extradata for this particular stream (e.g.
codec initialization data).
</parameter_description>
</parameter>
</parameters>
<return> TRUE if parsing succeeded, otherwise FALSE.
</return>
</function>

<function name="gst_riff_parse_strf_vids">
<description>
Parses a video stream´s strf structure plus optionally some
extradata from input data. This function takes ownership of @buf.


</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging/error).
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> input data to be used for parsing, stripped from header.
</parameter_description>
</parameter>
<parameter name="strf">
<parameter_description> a pointer (returned by this function) to a filled-in
strf/vids structure. Caller should free it.
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> a pointer (returned by this function) to a buffer
containing extradata for this particular stream (e.g.
palette, codec initialization data).
</parameter_description>
</parameter>
</parameters>
<return> TRUE if parsing succeeded, otherwise FALSE. The stream
should be skipped on error, but it is not fatal.
</return>
</function>

<function name="gst_riff_parse_strh">
<description>
Parses a strh structure from input data. Takes ownership of @buf.


</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging/error).
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> input data to be used for parsing, stripped from header.
</parameter_description>
</parameter>
<parameter name="strh">
<parameter_description> a pointer (returned by this function) to a filled-in
strh structure. Caller should free it.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if parsing succeeded, otherwise FALSE. The stream
should be skipped on error, but it is not fatal.
</return>
</function>

<function name="gst_riff_read_chunk">
<description>
Reads a single chunk of data. 'JUNK' chunks are skipped
automatically.


</description>
<parameters>
<parameter name="element">
<parameter_description> caller element (used for debugging).
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> pad to pull data from.
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset to pull from, incremented by this function.
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> fourcc of the chunk (returned by this function).
</parameter_description>
</parameter>
<parameter name="chunk_data">
<parameter_description> buffer (returned by this function).
</parameter_description>
</parameter>
</parameters>
<return> flow status.
</return>
</function>

<function name="gst_ring_buffer_set_timestamp">
<description>
Set a new timestamp on the buffer.

MT safe.

</description>
<parameters>
<parameter name="buf">
<parameter_description> the #GstAudioRingBuffer
</parameter_description>
</parameter>
<parameter name="readseg">
<parameter_description> the current data segment
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> The new timestamp of the buffer.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_buffer_add_packet">
<description>
Add a new packet of @type to @rtcp. @packet will point to the newly created 
packet.


</description>
<parameters>
<parameter name="rtcp">
<parameter_description> a valid RTCP buffer
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the #GstRTCPType of the new packet
</parameter_description>
</parameter>
<parameter name="packet">
<parameter_description> pointer to new packet
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the packet could be created. This function returns %FALSE
if the max mtu is exceeded for the buffer.
</return>
</function>

<function name="gst_rtcp_buffer_get_first_packet">
<description>
Initialize a new #GstRTCPPacket pointer that points to the first packet in
@rtcp.


</description>
<parameters>
<parameter name="rtcp">
<parameter_description> a valid RTCP buffer
</parameter_description>
</parameter>
<parameter name="packet">
<parameter_description> a #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the packet existed in @rtcp.
</return>
</function>

<function name="gst_rtcp_buffer_get_packet_count">
<description>
Get the number of RTCP packets in @rtcp.


</description>
<parameters>
<parameter name="rtcp">
<parameter_description> a valid RTCP buffer
</parameter_description>
</parameter>
</parameters>
<return> the number of RTCP packets in @rtcp.
</return>
</function>

<function name="gst_rtcp_buffer_map">
<description>
Open @buffer for reading or writing, depending on @flags. The resulting RTCP
buffer state is stored in @rtcp.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a buffer with an RTCP packet
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags for the mapping
</parameter_description>
</parameter>
<parameter name="rtcp">
<parameter_description> resulting #GstRTCPBuffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_buffer_new">
<description>
Create a new buffer for constructing RTCP packets. The packet will have a
maximum size of @mtu.


</description>
<parameters>
<parameter name="mtu">
<parameter_description> the maximum mtu size.
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated buffer.
</return>
</function>

<function name="gst_rtcp_buffer_new_copy_data">
<description>
Create a new buffer and set the data to a copy of @len
bytes of @data and the size to @len. The data will be freed when the buffer
is freed.


</description>
<parameters>
<parameter name="data">
<parameter_description> data for the new buffer
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length of data
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated buffer with a copy of @data and of size @len.
</return>
</function>

<function name="gst_rtcp_buffer_new_take_data">
<description>
Create a new buffer and set the data and size of the buffer to @data and @len
respectively. @data will be freed when the buffer is unreffed, so this
function transfers ownership of @data to the new buffer.


</description>
<parameters>
<parameter name="data">
<parameter_description> data for the new buffer
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length of data
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated buffer with @data and of size @len.
</return>
</function>

<function name="gst_rtcp_buffer_unmap">
<description>
Finish @rtcp after being constructured. This function is usually called
after gst_rtcp_buffer_map() and after adding the RTCP items to the new buffer.

The function adjusts the size of @rtcp with the total length of all the
added packets.

</description>
<parameters>
<parameter name="rtcp">
<parameter_description> a buffer with an RTCP packet
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_buffer_validate">
<description>
Check if the data pointed to by @buffer is a valid RTCP packet using
gst_rtcp_buffer_validate_data().


</description>
<parameters>
<parameter name="buffer">
<parameter_description> the buffer to validate
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @buffer is a valid RTCP packet.
</return>
</function>

<function name="gst_rtcp_buffer_validate_data">
<description>
Check if the @data and @size point to the data of a valid RTCP (compound)
packet. 
Use this function to validate a packet before using the other functions in
this module.


</description>
<parameters>
<parameter name="data">
<parameter_description> the data to validate
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length of @data to validate
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the data points to a valid RTCP packet.
</return>
</function>

<function name="gst_rtcp_ntp_to_unix">
<description>
Converts an NTP time to UNIX nanoseconds. @ntptime can typically be
the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
number of seconds since 1900 and, in the lower 32 bits, the fractional
seconds. The resulting value will be the number of nanoseconds since 1970.


</description>
<parameters>
<parameter name="ntptime">
<parameter_description> an NTP timestamp
</parameter_description>
</parameter>
</parameters>
<return> the UNIX time for @ntptime in nanoseconds.
</return>
</function>

<function name="gst_rtcp_packet_add_rb">
<description>
Add a new report block to @packet with the given values.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SR or RR #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> data source being reported
</parameter_description>
</parameter>
<parameter name="fractionlost">
<parameter_description> fraction lost since last SR/RR
</parameter_description>
</parameter>
<parameter name="packetslost">
<parameter_description> the cumululative number of packets lost
</parameter_description>
</parameter>
<parameter name="exthighestseq">
<parameter_description> the extended last sequence number received
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> the interarrival jitter
</parameter_description>
</parameter>
<parameter name="lsr">
<parameter_description> the last SR packet from this source
</parameter_description>
</parameter>
<parameter name="dlsr">
<parameter_description> the delay since last SR packet
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the packet was created. This function can return %FALSE if
the max MTU is exceeded or the number of report blocks is greater than
#GST_RTCP_MAX_RB_COUNT.
</return>
</function>

<function name="gst_rtcp_packet_bye_add_ssrc">
<description>
Add @ssrc to the BYE @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid BYE #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> an SSRC to add
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the ssrc was added. This function can return %FALSE if
the max MTU is exceeded or the number of sources blocks is greater than
#GST_RTCP_MAX_BYE_SSRC_COUNT.
</return>
</function>

<function name="gst_rtcp_packet_bye_add_ssrcs">
<description>
Adds @len SSRCs in @ssrc to BYE @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid BYE #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> an array of SSRCs to add
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> number of elements in @ssrc
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the all the SSRCs were added. This function can return %FALSE if
the max MTU is exceeded or the number of sources blocks is greater than
#GST_RTCP_MAX_BYE_SSRC_COUNT.
</return>
</function>

<function name="gst_rtcp_packet_bye_get_nth_ssrc">
<description>
Get the @nth SSRC of the BYE @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid BYE #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> the nth SSRC to get
</parameter_description>
</parameter>
</parameters>
<return> The @nth SSRC of @packet.
</return>
</function>

<function name="gst_rtcp_packet_bye_get_reason">
<description>
Get the reason in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid BYE #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The reason for the BYE @packet or NULL if the packet did not contain
a reason string. The string must be freed with g_free() after usage.
</return>
</function>

<function name="gst_rtcp_packet_bye_get_reason_len">
<description>
Get the length of the reason string.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid BYE #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The length of the reason string or 0 when there is no reason string
present.
</return>
</function>

<function name="gst_rtcp_packet_bye_get_ssrc_count">
<description>
Get the number of SSRC fields in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid BYE #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The number of SSRC fields in @packet.
</return>
</function>

<function name="gst_rtcp_packet_bye_set_reason">
<description>
Set the reason string to @reason in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid BYE #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="reason">
<parameter_description> a reason string
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the string could be set.
</return>
</function>

<function name="gst_rtcp_packet_fb_get_fci">
<description>
Get the Feedback Control Information attached to a RTPFB or PSFB @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the FCI
</return>
</function>

<function name="gst_rtcp_packet_fb_get_fci_length">
<description>
Get the length of the Feedback Control Information attached to a
RTPFB or PSFB @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The length of the FCI in 32-bit words.
</return>
</function>

<function name="gst_rtcp_packet_fb_get_media_ssrc">
<description>
Get the media SSRC field of the RTPFB or PSFB @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> the media SSRC.
</return>
</function>

<function name="gst_rtcp_packet_fb_get_sender_ssrc">
<description>
Get the sender SSRC field of the RTPFB or PSFB @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> the sender SSRC.
</return>
</function>

<function name="gst_rtcp_packet_fb_get_type">
<description>
Get the feedback message type of the FB @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The feedback message type.
</return>
</function>

<function name="gst_rtcp_packet_fb_set_fci_length">
<description>
Set the length of the Feedback Control Information attached to a
RTPFB or PSFB @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="wordlen">
<parameter_description> Length of the FCI in 32-bit words
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there was enough space in the packet to add this much FCI
</return>
</function>

<function name="gst_rtcp_packet_fb_set_media_ssrc">
<description>
Set the media SSRC field of the RTPFB or PSFB @packet.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> a media SSRC
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_packet_fb_set_sender_ssrc">
<description>
Set the sender SSRC field of the RTPFB or PSFB @packet.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> a sender SSRC
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_packet_fb_set_type">
<description>
Set the feedback message type of the FB @packet.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RTPFB or PSFB #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the #GstRTCPFBType to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_packet_get_count">
<description>
Get the count field in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The count field in @packet or -1 if @packet does not point to a
valid packet.
</return>
</function>

<function name="gst_rtcp_packet_get_length">
<description>
Get the length field of @packet. This is the length of the packet in 
32-bit words minus one.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The length field of @packet.
</return>
</function>

<function name="gst_rtcp_packet_get_padding">
<description>
Get the packet padding of the packet pointed to by @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> If the packet has the padding bit set.
</return>
</function>

<function name="gst_rtcp_packet_get_rb">
<description>
Parse the values of the @nth report block in @packet and store the result in
the values.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SR or RR #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> the nth report block in @packet
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> result for data source being reported
</parameter_description>
</parameter>
<parameter name="fractionlost">
<parameter_description> result for fraction lost since last SR/RR
</parameter_description>
</parameter>
<parameter name="packetslost">
<parameter_description> result for the cumululative number of packets lost
</parameter_description>
</parameter>
<parameter name="exthighestseq">
<parameter_description> result for the extended last sequence number received
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> result for the interarrival jitter
</parameter_description>
</parameter>
<parameter name="lsr">
<parameter_description> result for the last SR packet from this source
</parameter_description>
</parameter>
<parameter name="dlsr">
<parameter_description> result for the delay since last SR packet
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_packet_get_rb_count">
<description>
Get the number of report blocks in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SR or RR #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The number of report blocks in @packet.
</return>
</function>

<function name="gst_rtcp_packet_get_type">
<description>
Get the packet type of the packet pointed to by @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The packet type or GST_RTCP_TYPE_INVALID when @packet is not
pointing to a valid packet.
</return>
</function>

<function name="gst_rtcp_packet_move_to_next">
<description>
Move the packet pointer @packet to the next packet in the payload.
Use gst_rtcp_buffer_get_first_packet() to initialize @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @packet is pointing to a valid packet after calling this
function.
</return>
</function>

<function name="gst_rtcp_packet_remove">
<description>
Removes the packet pointed to by @packet and moves pointer to the next one


</description>
<parameters>
<parameter name="packet">
<parameter_description> a #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @packet is pointing to a valid packet after calling this
function.
</return>
</function>

<function name="gst_rtcp_packet_rr_get_ssrc">
<description>
Get the ssrc field of the RR @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RR #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> the ssrc.
</return>
</function>

<function name="gst_rtcp_packet_rr_set_ssrc">
<description>
Set the ssrc field of the RR @packet.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid RR #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> the SSRC to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_packet_sdes_add_entry">
<description>
Add a new SDES entry to the current item in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the #GstRTCPSDESType of the SDES entry
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the data length
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item could be added, %FALSE if the MTU has been
reached.
</return>
</function>

<function name="gst_rtcp_packet_sdes_add_item">
<description>
Add a new SDES item for @ssrc to @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> the SSRC of the new item to add
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item could be added, %FALSE if the maximum amount of
items has been exceeded for the SDES packet or the MTU has been reached.
</return>
</function>

<function name="gst_rtcp_packet_sdes_copy_entry">
<description>
This function is like gst_rtcp_packet_sdes_get_entry() but it returns a
null-terminated copy of the data instead. use g_free() after usage.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> result of the entry type
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> result length of the entry data
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> result entry data
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there was valid data.
</return>
</function>

<function name="gst_rtcp_packet_sdes_first_entry">
<description>
Move to the first SDES entry in the current item.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there was a first entry.
</return>
</function>

<function name="gst_rtcp_packet_sdes_first_item">
<description>
Move to the first SDES item in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> TRUE if there was a first item.
</return>
</function>

<function name="gst_rtcp_packet_sdes_get_entry">
<description>
Get the data of the current SDES item entry. @type (when not NULL) will
contain the type of the entry. @data (when not NULL) will point to @len
bytes.

When @type refers to a text item, @data will point to a UTF8 string. Note
that this UTF8 string is NOT null-terminated. Use
gst_rtcp_packet_sdes_copy_entry() to get a null-terminated copy of the entry.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> result of the entry type
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> result length of the entry data
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> result entry data
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there was valid data.
</return>
</function>

<function name="gst_rtcp_packet_sdes_get_item_count">
<description>
Get the number of items in the SDES packet @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> The number of items in @packet.
</return>
</function>

<function name="gst_rtcp_packet_sdes_get_ssrc">
<description>
Get the SSRC of the current SDES item.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> the SSRC of the current item.
</return>
</function>

<function name="gst_rtcp_packet_sdes_next_entry">
<description>
Move to the next SDES entry in the current item.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there was a next entry.
</return>
</function>

<function name="gst_rtcp_packet_sdes_next_item">
<description>
Move to the next SDES item in @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SDES #GstRTCPPacket
</parameter_description>
</parameter>
</parameters>
<return> TRUE if there was a next item.
</return>
</function>

<function name="gst_rtcp_packet_set_rb">
<description>
Set the @nth new report block in @packet with the given values.

Note: Not implemented.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SR or RR #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> the nth report block to set
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> data source being reported
</parameter_description>
</parameter>
<parameter name="fractionlost">
<parameter_description> fraction lost since last SR/RR
</parameter_description>
</parameter>
<parameter name="packetslost">
<parameter_description> the cumululative number of packets lost
</parameter_description>
</parameter>
<parameter name="exthighestseq">
<parameter_description> the extended last sequence number received
</parameter_description>
</parameter>
<parameter name="jitter">
<parameter_description> the interarrival jitter
</parameter_description>
</parameter>
<parameter name="lsr">
<parameter_description> the last SR packet from this source
</parameter_description>
</parameter>
<parameter name="dlsr">
<parameter_description> the delay since last SR packet
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_packet_sr_get_sender_info">
<description>
Parse the SR sender info and store the values.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SR #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> result SSRC
</parameter_description>
</parameter>
<parameter name="ntptime">
<parameter_description> result NTP time
</parameter_description>
</parameter>
<parameter name="rtptime">
<parameter_description> result RTP time
</parameter_description>
</parameter>
<parameter name="packet_count">
<parameter_description> result packet count
</parameter_description>
</parameter>
<parameter name="octet_count">
<parameter_description> result octet count
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_packet_sr_set_sender_info">
<description>
Set the given values in the SR packet @packet.

</description>
<parameters>
<parameter name="packet">
<parameter_description> a valid SR #GstRTCPPacket
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> the SSRC 
</parameter_description>
</parameter>
<parameter name="ntptime">
<parameter_description> the NTP time
</parameter_description>
</parameter>
<parameter name="rtptime">
<parameter_description> the RTP time
</parameter_description>
</parameter>
<parameter name="packet_count">
<parameter_description> the packet count
</parameter_description>
</parameter>
<parameter name="octet_count">
<parameter_description> the octet count
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtcp_sdes_name_to_type">
<description>
Convert @name into a @GstRTCPSDESType. @name is typically a key in a
#GstStructure containing SDES items.


</description>
<parameters>
<parameter name="name">
<parameter_description> a SDES name
</parameter_description>
</parameter>
</parameters>
<return> the #GstRTCPSDESType for @name or #GST_RTCP_SDES_PRIV when @name
is a private sdes item.
</return>
</function>

<function name="gst_rtcp_sdes_type_to_name">
<description>
Converts @type to the string equivalent. The string is typically used as a
key in a #GstStructure containing SDES items.


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GstRTCPSDESType
</parameter_description>
</parameter>
</parameters>
<return> the string equivalent of @type
</return>
</function>

<function name="gst_rtcp_unix_to_ntp">
<description>
Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
pass a value with nanoseconds since 1970. The NTP time will, in the upper
32 bits, contain the number of seconds since 1900 and, in the lower 32
bits, the fractional seconds. The resulting value can be used as an ntptime
for constructing SR RTCP packets.


</description>
<parameters>
<parameter name="unixtime">
<parameter_description> an UNIX timestamp in nanoseconds
</parameter_description>
</parameter>
</parameters>
<return> the NTP time for @unixtime.
</return>
</function>

<function name="gst_rtp_base_audio_payload_flush">
<description>
Create an RTP buffer and store @payload_len bytes of the adapter as the
payload. Set the timestamp on the new buffer to @timestamp before pushing
the buffer downstream.

If @payload_len is -1, all pending bytes will be flushed. If @timestamp is
-1, the timestamp will be calculated automatically.


</description>
<parameters>
<parameter name="baseaudiopayload">
<parameter_description> a #GstRTPBasePayload
</parameter_description>
</parameter>
<parameter name="payload_len">
<parameter_description> length of payload
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> a #GstClockTime
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn
</return>
</function>

<function name="gst_rtp_base_audio_payload_get_adapter">
<description>
Gets the internal adapter used by the depayloader.


</description>
<parameters>
<parameter name="rtpbaseaudiopayload">
<parameter_description> a #GstRTPBaseAudioPayload
</parameter_description>
</parameter>
</parameters>
<return> a #GstAdapter.
</return>
</function>

<function name="gst_rtp_base_audio_payload_push">
<description>
Create an RTP buffer and store @payload_len bytes of @data as the
payload. Set the timestamp on the new buffer to @timestamp before pushing
the buffer downstream.


</description>
<parameters>
<parameter name="baseaudiopayload">
<parameter_description> a #GstRTPBasePayload
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to set as payload
</parameter_description>
</parameter>
<parameter name="payload_len">
<parameter_description> length of payload
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> a #GstClockTime
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn
</return>
</function>

<function name="gst_rtp_base_audio_payload_set_frame_based">
<description>
Tells #GstRTPBaseAudioPayload that the child element is for a frame based
audio codec

</description>
<parameters>
<parameter name="rtpbaseaudiopayload">
<parameter_description> a pointer to the element.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_base_audio_payload_set_frame_options">
<description>
Sets the options for frame based audio codecs.


</description>
<parameters>
<parameter name="rtpbaseaudiopayload">
<parameter_description> a pointer to the element.
</parameter_description>
</parameter>
<parameter name="frame_duration">
<parameter_description> The duraction of an audio frame in milliseconds.
</parameter_description>
</parameter>
<parameter name="frame_size">
<parameter_description> The size of an audio frame in bytes.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_base_audio_payload_set_sample_based">
<description>
Tells #GstRTPBaseAudioPayload that the child element is for a sample based
audio codec

</description>
<parameters>
<parameter name="rtpbaseaudiopayload">
<parameter_description> a pointer to the element.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_base_audio_payload_set_sample_options">
<description>
Sets the options for sample based audio codecs.

</description>
<parameters>
<parameter name="rtpbaseaudiopayload">
<parameter_description> a pointer to the element.
</parameter_description>
</parameter>
<parameter name="sample_size">
<parameter_description> Size per sample in bytes.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_base_audio_payload_set_samplebits_options">
<description>
Sets the options for sample based audio codecs.

</description>
<parameters>
<parameter name="rtpbaseaudiopayload">
<parameter_description> a pointer to the element.
</parameter_description>
</parameter>
<parameter name="sample_size">
<parameter_description> Size per sample in bits.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_base_depayload_push">
<description>
Push @out_buf to the peer of @filter. This function takes ownership of
@out_buf.

This function will by default apply the last incomming timestamp on
the outgoing buffer when it didn't have a timestamp already.


</description>
<parameters>
<parameter name="filter">
<parameter_description> a #GstRTPBaseDepayload
</parameter_description>
</parameter>
<parameter name="out_buf">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn.
</return>
</function>

<function name="gst_rtp_base_depayload_push_list">
<description>
Push @out_list to the peer of @filter. This function takes ownership of
@out_list.


</description>
<parameters>
<parameter name="filter">
<parameter_description> a #GstRTPBaseDepayload
</parameter_description>
</parameter>
<parameter name="out_list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn.
</return>
</function>

<function name="gst_rtp_base_payload_is_filled">
<description>
Check if the packet with @size and @duration would exceed the configured
maximum size.


</description>
<parameters>
<parameter name="payload">
<parameter_description> a #GstRTPBasePayload
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the packet
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the packet
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the packet of @size and @duration would exceed the
configured MTU or max_ptime.
</return>
</function>

<function name="gst_rtp_base_payload_push">
<description>
Push @buffer to the peer element of the payloader. The SSRC, payload type,
seqnum and timestamp of the RTP buffer will be updated first.

This function takes ownership of @buffer.


</description>
<parameters>
<parameter name="payload">
<parameter_description> a #GstRTPBasePayload
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn.
</return>
</function>

<function name="gst_rtp_base_payload_push_list">
<description>
Push @list to the peer element of the payloader. The SSRC, payload type,
seqnum and timestamp of the RTP buffer will be updated first.

This function takes ownership of @list.


</description>
<parameters>
<parameter name="payload">
<parameter_description> a #GstRTPBasePayload
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> a #GstBufferList
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn.
</return>
</function>

<function name="gst_rtp_base_payload_set_options">
<description>
Set the rtp options of the payloader. These options will be set in the caps
of the payloader. Subclasses must call this method before calling
gst_rtp_base_payload_push() or gst_rtp_base_payload_set_outcaps().

</description>
<parameters>
<parameter name="payload">
<parameter_description> a #GstRTPBasePayload
</parameter_description>
</parameter>
<parameter name="media">
<parameter_description> the media type (typically &quot;audio&quot; or &quot;video&quot;)
</parameter_description>
</parameter>
<parameter name="dynamic">
<parameter_description> if the payload type is dynamic
</parameter_description>
</parameter>
<parameter name="encoding_name">
<parameter_description> the encoding name
</parameter_description>
</parameter>
<parameter name="clock_rate">
<parameter_description> the clock rate of the media
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_base_payload_set_outcaps">
<description>
Configure the output caps with the optional parameters.

Variable arguments should be in the form field name, field type
(as a GType), value(s).  The last variable argument should be NULL.


</description>
<parameters>
<parameter name="payload">
<parameter_description> a #GstRTPBasePayload
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the first field name or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> field values
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the caps could be set.
</return>
</function>

<function name="gst_rtp_buffer_add_extension_onebyte_header">
<description>
Adds a RFC 5285 header extension with a one byte header to the end of the
RTP header. If there is already a RFC 5285 header extension with a one byte
header, the new extension will be appended.
It will not work if there is already a header extension that does not follow
the mecanism described in RFC 5285 or if there is a header extension with
a two bytes header as described in RFC 5285. In that case, use
gst_rtp_buffer_add_extension_twobytes_header()


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> The ID of the header extension (between 1 and 14).
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> location for data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the data in bytes
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if header extension could be added
</return>
</function>

<function name="gst_rtp_buffer_add_extension_twobytes_header">
<description>
Adds a RFC 5285 header extension with a two bytes header to the end of the
RTP header. If there is already a RFC 5285 header extension with a two bytes
header, the new extension will be appended.
It will not work if there is already a header extension that does not follow
the mecanism described in RFC 5285 or if there is a header extension with
a one byte header as described in RFC 5285. In that case, use
gst_rtp_buffer_add_extension_onebyte_header()


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="appbits">
<parameter_description> Application specific bits
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> The ID of the header extension
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> location for data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the data in bytes
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if header extension could be added
</return>
</function>

<function name="gst_rtp_buffer_allocate_data">
<description>
Allocate enough data in @buffer to hold an RTP packet with @csrc_count CSRCs,
a payload length of @payload_len and padding of @pad_len.
@buffer must be writable and all previous memory in @buffer will be freed.
If @pad_len is &gt;0, the padding bit will be set. All other RTP header fields
will be set to 0/FALSE.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="payload_len">
<parameter_description> the length of the payload
</parameter_description>
</parameter>
<parameter name="pad_len">
<parameter_description> the amount of padding
</parameter_description>
</parameter>
<parameter name="csrc_count">
<parameter_description> the number of CSRC entries
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_calc_header_len">
<description>
Calculate the header length of an RTP packet with @csrc_count CSRC entries.
An RTP packet can have at most 15 CSRC entries.


</description>
<parameters>
<parameter name="csrc_count">
<parameter_description> the number of CSRC entries
</parameter_description>
</parameter>
</parameters>
<return> The length of an RTP header with @csrc_count CSRC entries.
</return>
</function>

<function name="gst_rtp_buffer_calc_packet_len">
<description>
Calculate the total length of an RTP packet with a payload size of @payload_len,
a padding of @pad_len and a @csrc_count CSRC entries.


</description>
<parameters>
<parameter name="payload_len">
<parameter_description> the length of the payload
</parameter_description>
</parameter>
<parameter name="pad_len">
<parameter_description> the amount of padding
</parameter_description>
</parameter>
<parameter name="csrc_count">
<parameter_description> the number of CSRC entries
</parameter_description>
</parameter>
</parameters>
<return> The total length of an RTP header with given parameters.
</return>
</function>

<function name="gst_rtp_buffer_calc_payload_len">
<description>
Calculate the length of the payload of an RTP packet with size @packet_len,
a padding of @pad_len and a @csrc_count CSRC entries.


</description>
<parameters>
<parameter name="packet_len">
<parameter_description> the length of the total RTP packet
</parameter_description>
</parameter>
<parameter name="pad_len">
<parameter_description> the amount of padding
</parameter_description>
</parameter>
<parameter name="csrc_count">
<parameter_description> the number of CSRC entries
</parameter_description>
</parameter>
</parameters>
<return> The length of the payload of an RTP packet  with given parameters.
</return>
</function>

<function name="gst_rtp_buffer_compare_seqnum">
<description>
Compare two sequence numbers, taking care of wraparounds. This function
returns the difference between @seqnum1 and @seqnum2.


</description>
<parameters>
<parameter name="seqnum1">
<parameter_description> a sequence number
</parameter_description>
</parameter>
<parameter name="seqnum2">
<parameter_description> a sequence number
</parameter_description>
</parameter>
</parameters>
<return> a negative value if @seqnum1 is bigger than @seqnum2, 0 if they
are equal or a positive value if @seqnum1 is smaller than @segnum2.
</return>
</function>

<function name="gst_rtp_buffer_default_clock_rate">
<description>
Get the default clock-rate for the static payload type @payload_type.


</description>
<parameters>
<parameter name="payload_type">
<parameter_description> the static payload type
</parameter_description>
</parameter>
</parameters>
<return> the default clock rate or -1 if the payload type is not static or
the clock-rate is undefined.
</return>
</function>

<function name="gst_rtp_buffer_ext_timestamp">
<description>
Update the @exttimestamp field with @timestamp. For the first call of the
method, @exttimestamp should point to a location with a value of -1.

This function makes sure that the returned value is a constantly increasing
value even in the case where there is a timestamp wraparound.


</description>
<parameters>
<parameter name="exttimestamp">
<parameter_description> a previous extended timestamp
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> a new timestamp
</parameter_description>
</parameter>
</parameters>
<return> The extended timestamp of @timestamp.
</return>
</function>

<function name="gst_rtp_buffer_get_csrc">
<description>
Get the CSRC at index @idx in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index of the CSRC to get
</parameter_description>
</parameter>
</parameters>
<return> the CSRC at index @idx in host order.
</return>
</function>

<function name="gst_rtp_buffer_get_csrc_count">
<description>
Get the CSRC count of the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> the CSRC count of @buffer.
</return>
</function>

<function name="gst_rtp_buffer_get_extension">
<description>
Check if the extension bit is set on the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @buffer has the extension bit set.
</return>
</function>

<function name="gst_rtp_buffer_get_extension_data">
<description>
Get the extension data. @bits will contain the extension 16 bits of custom
data. @data will point to the data in the extension and @wordlen will contain
the length of @data in 32 bits words.

If @buffer did not contain an extension, this function will return %FALSE
with @bits, @data and @wordlen unchanged.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="bits">
<parameter_description> location for result bits
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> location for data
</parameter_description>
</parameter>
<parameter name="wordlen">
<parameter_description> location for length of @data in 32 bits words
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @buffer had the extension bit set.
</return>
</function>

<function name="gst_rtp_buffer_get_extension_onebyte_header">
<description>
Parses RFC 5285 style header extensions with a one byte header. It will
return the nth extension with the requested id.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> The ID of the header extension to be read (between 1 and 14).
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> Read the nth extension packet with the requested ID
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description>
location for data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the data in bytes
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @buffer had the requested header extension
</return>
</function>

<function name="gst_rtp_buffer_get_extension_twobytes_header">
<description>
Parses RFC 5285 style header extensions with a two bytes header. It will
return the nth extension with the requested id.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="appbits">
<parameter_description> Application specific bits
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> The ID of the header extension to be read (between 1 and 14).
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> Read the nth extension packet with the requested ID
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description>
location for data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the data in bytes
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @buffer had the requested header extension
</return>
</function>

<function name="gst_rtp_buffer_get_header_len">
<description>
Return the total length of the header in @buffer. This include the length of
the fixed header, the CSRC list and the extension header.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> The total length of the header in @buffer.
</return>
</function>

<function name="gst_rtp_buffer_get_marker">
<description>
Check if the marker bit is set on the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @buffer has the marker bit set.
</return>
</function>

<function name="gst_rtp_buffer_get_packet_len">
<description>
Return the total length of the packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> The total length of the packet in @buffer.
</return>
</function>

<function name="gst_rtp_buffer_get_padding">
<description>
Check if the padding bit is set on the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @buffer has the padding bit set.
</return>
</function>

<function name="gst_rtp_buffer_get_payload">
<description>
Get a pointer to the payload data in @buffer. This pointer is valid as long
as a reference to @buffer is held.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> A pointer
to the payload data in @buffer.
</return>
</function>

<function name="gst_rtp_buffer_get_payload_buffer">
<description>
Create a buffer of the payload of the RTP packet in @buffer. This function
will internally create a subbuffer of @buffer so that a memcpy can be
avoided.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> A new buffer with the data of the payload.
</return>
</function>

<function name="gst_rtp_buffer_get_payload_len">
<description>
Get the length of the payload of the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> The length of the payload in @buffer.
</return>
</function>

<function name="gst_rtp_buffer_get_payload_subbuffer">
<description>
Create a subbuffer of the payload of the RTP packet in @buffer. @offset bytes
are skipped in the payload and the subbuffer will be of size @len.
If @len is -1 the total payload starting from @offset if subbuffered.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset in the payload
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length in the payload
</parameter_description>
</parameter>
</parameters>
<return> A new buffer with the specified data of the payload.
</return>
</function>

<function name="gst_rtp_buffer_get_payload_type">
<description>
Get the payload type of the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> The payload type.
</return>
</function>

<function name="gst_rtp_buffer_get_seq">
<description>
Get the sequence number of the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> The sequence number in host order.
</return>
</function>

<function name="gst_rtp_buffer_get_ssrc">
<description>
Get the SSRC of the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> the SSRC of @buffer in host order.
</return>
</function>

<function name="gst_rtp_buffer_get_timestamp">
<description>
Get the timestamp of the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> The timestamp in host order.
</return>
</function>

<function name="gst_rtp_buffer_get_version">
<description>
Get the version number of the RTP packet in @buffer.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
</parameters>
<return> The version of @buffer.
</return>
</function>

<function name="gst_rtp_buffer_map">
<description>
Map the contents of @buffer into @rtp.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstMapFlags
</parameter_description>
</parameter>
<parameter name="rtp">
<parameter_description> a #GstRTPBuffer
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @buffer could be mapped.
</return>
</function>

<function name="gst_rtp_buffer_new_allocate">
<description>
Allocate a new #GstBuffer with enough data to hold an RTP packet with
@csrc_count CSRCs, a payload length of @payload_len and padding of @pad_len.
All other RTP header fields will be set to 0/FALSE.


</description>
<parameters>
<parameter name="payload_len">
<parameter_description> the length of the payload
</parameter_description>
</parameter>
<parameter name="pad_len">
<parameter_description> the amount of padding
</parameter_description>
</parameter>
<parameter name="csrc_count">
<parameter_description> the number of CSRC entries
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated buffer that can hold an RTP packet with given
parameters.
</return>
</function>

<function name="gst_rtp_buffer_new_allocate_len">
<description>
Create a new #GstBuffer that can hold an RTP packet that is exactly
@packet_len long. The length of the payload depends on @pad_len and
@csrc_count and can be calculated with gst_rtp_buffer_calc_payload_len().
All RTP header fields will be set to 0/FALSE.


</description>
<parameters>
<parameter name="packet_len">
<parameter_description> the total length of the packet
</parameter_description>
</parameter>
<parameter name="pad_len">
<parameter_description> the amount of padding
</parameter_description>
</parameter>
<parameter name="csrc_count">
<parameter_description> the number of CSRC entries
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated buffer that can hold an RTP packet of @packet_len.
</return>
</function>

<function name="gst_rtp_buffer_new_copy_data">
<description>
Create a new buffer and set the data to a copy of @len
bytes of @data and the size to @len. The data will be freed when the buffer
is freed.


</description>
<parameters>
<parameter name="data">
<parameter_description> data for the new
buffer
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length of data
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated buffer with a copy of @data and of size @len.
</return>
</function>

<function name="gst_rtp_buffer_new_take_data">
<description>
Create a new buffer and set the data and size of the buffer to @data and @len
respectively. @data will be freed when the buffer is unreffed, so this
function transfers ownership of @data to the new buffer.


</description>
<parameters>
<parameter name="data">
<parameter_description>
data for the new buffer
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length of data
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated buffer with @data and of size @len.
</return>
</function>

<function name="gst_rtp_buffer_pad_to">
<description>
Set the amount of padding in the RTP packet in @buffer to
@len. If @len is 0, the padding is removed.

NOTE: This function does not work correctly.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the new amount of padding
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_csrc">
<description>
Modify the CSRC at index @idx in @buffer to @csrc.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the CSRC index to set
</parameter_description>
</parameter>
<parameter name="csrc">
<parameter_description> the CSRC in host order to set at @idx
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_extension">
<description>
Set the extension bit on the RTP packet in @buffer to @extension.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="extension">
<parameter_description> the new extension
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_extension_data">
<description>
Set the extension bit of the rtp buffer and fill in the @bits and @length of the
extension header. If the existing extension data is not large enough, it will
be made larger.


</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="bits">
<parameter_description> the bits specific for the extension
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length that counts the number of 32-bit words in
the extension, excluding the extension header ( therefore zero is a valid length)
</parameter_description>
</parameter>
</parameters>
<return> True if done.
</return>
</function>

<function name="gst_rtp_buffer_set_marker">
<description>
Set the marker bit on the RTP packet in @buffer to @marker.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="marker">
<parameter_description> the new marker
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_packet_len">
<description>
Set the total @rtp size to @len. The data in the buffer will be made
larger if needed. Any padding will be removed from the packet.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the new packet length
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_padding">
<description>
Set the padding bit on the RTP packet in @buffer to @padding.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the buffer
</parameter_description>
</parameter>
<parameter name="padding">
<parameter_description> the new padding
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_payload_type">
<description>
Set the payload type of the RTP packet in @buffer to @payload_type.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="payload_type">
<parameter_description> the new type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_seq">
<description>
Set the sequence number of the RTP packet in @buffer to @seq.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="seq">
<parameter_description> the new sequence number
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_ssrc">
<description>
Set the SSRC on the RTP packet in @buffer to @ssrc.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="ssrc">
<parameter_description> the new SSRC
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_timestamp">
<description>
Set the timestamp of the RTP packet in @buffer to @timestamp.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the new timestamp
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_set_version">
<description>
Set the version of the RTP packet in @buffer to @version.

</description>
<parameters>
<parameter name="rtp">
<parameter_description> the RTP packet
</parameter_description>
</parameter>
<parameter name="version">
<parameter_description> the new version
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_buffer_unmap">
<description>
Unmap @rtp previously mapped with gst_rtp_buffer_map().

</description>
<parameters>
<parameter name="rtp">
<parameter_description> a #GstRTPBuffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtp_hdrext_get_ntp_56">
<description>
Reads the NTP time from the @size NTP-56 extension bytes in @data and store the
result in @ntptime.


</description>
<parameters>
<parameter name="data">
<parameter_description> the data to read from
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="ntptime">
<parameter_description> the result NTP time
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_rtp_hdrext_get_ntp_64">
<description>
Reads the NTP time from the @size NTP-64 extension bytes in @data and store the
result in @ntptime.


</description>
<parameters>
<parameter name="data">
<parameter_description> the data to read from
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="ntptime">
<parameter_description> the result NTP time
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_rtp_hdrext_set_ntp_56">
<description>
Writes the NTP time in @ntptime to the format required for the NTP-56 header
extension. @data must hold at least #GST_RTP_HDREXT_NTP_56_SIZE bytes.


</description>
<parameters>
<parameter name="data">
<parameter_description> the data to write to
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="ntptime">
<parameter_description> the NTP time
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_rtp_hdrext_set_ntp_64">
<description>
Writes the NTP time in @ntptime to the format required for the NTP-64 header
extension. @data must hold at least #GST_RTP_HDREXT_NTP_64_SIZE bytes.


</description>
<parameters>
<parameter name="data">
<parameter_description> the data to write to
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="ntptime">
<parameter_description> the NTP time
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_rtp_payload_info_for_name">
<description>
Get the #GstRTPPayloadInfo for @media and @encoding_name. This function is
mostly used to get the default clock-rate and bandwidth for dynamic payload
types specified with @media and @encoding name.

The search for @encoding_name will be performed in a case insensitve way.


</description>
<parameters>
<parameter name="media">
<parameter_description> the media to find
</parameter_description>
</parameter>
<parameter name="encoding_name">
<parameter_description> the encoding name to find
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTPPayloadInfo or NULL when no info could be found.
</return>
</function>

<function name="gst_rtp_payload_info_for_pt">
<description>
Get the #GstRTPPayloadInfo for @payload_type. This function is
mostly used to get the default clock-rate and bandwidth for static payload
types specified with @payload_type.


</description>
<parameters>
<parameter name="payload_type">
<parameter_description> the payload_type to find
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTPPayloadInfo or NULL when no info could be found.
</return>
</function>

<function name="gst_rtsp_connection_accept">
<description>
Accept a new connection on @socket and create a new #GstRTSPConnection for
handling communication on new socket.


</description>
<parameters>
<parameter name="socket">
<parameter_description> a socket
</parameter_description>
</parameter>
<parameter name="conn">
<parameter_description> storage for a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a #GCancellable to cancel the operation
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK when @conn contains a valid connection.
</return>
</function>

<function name="gst_rtsp_connection_clear_auth_params">
<description>
Clear the list of authentication directives stored in @conn.

</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_connection_close">
<description>
Close the connected @conn. After this call, the connection is in the same
state as when it was first created.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_connect">
<description>
Attempt to connect to the url of @conn made with
gst_rtsp_connection_create(). If @timeout is #NULL this function can block
forever. If @timeout contains a valid timeout, this function will return
#GST_RTSP_ETIMEOUT after the timeout expired.

This function can be cancelled with gst_rtsp_connection_flush().


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection 
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a #GTimeVal timeout
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK when a connection could be made.
</return>
</function>

<function name="gst_rtsp_connection_create">
<description>
Create a newly allocated #GstRTSPConnection from @url and store it in @conn.
The connection will not yet attempt to connect to @url, use
gst_rtsp_connection_connect().

A copy of @url will be made.


</description>
<parameters>
<parameter name="url">
<parameter_description> a #GstRTSPUrl 
</parameter_description>
</parameter>
<parameter name="conn">
<parameter_description> storage for a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK when @conn contains a valid connection.
</return>
</function>

<function name="gst_rtsp_connection_create_from_socket">
<description>
Create a new #GstRTSPConnection for handling communication on the existing
socket @socket. The @initial_buffer contains zero terminated data already
read from @socket which should be used before starting to read new data.


</description>
<parameters>
<parameter name="socket">
<parameter_description> a #GSocket
</parameter_description>
</parameter>
<parameter name="ip">
<parameter_description> the IP address of the other end
</parameter_description>
</parameter>
<parameter name="port">
<parameter_description> the port used by the other end
</parameter_description>
</parameter>
<parameter name="initial_buffer">
<parameter_description> data already read from @fd
</parameter_description>
</parameter>
<parameter name="conn">
<parameter_description> storage for a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK when @conn contains a valid connection.
</return>
</function>

<function name="gst_rtsp_connection_do_tunnel">
<description>
If @conn received the first tunnel connection and @conn2 received
the second tunnel connection, link the two connections together so that
@conn manages the tunneled connection.

After this call, @conn2 cannot be used anymore and must be freed with
gst_rtsp_connection_free().

If @conn2 is %NULL then only the base64 decoding context will be setup for
@conn.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="conn2">
<parameter_description> a #GstRTSPConnection or %NULL
</parameter_description>
</parameter>
</parameters>
<return> return GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_flush">
<description>
Start or stop the flushing action on @conn. When flushing, all current
and future actions on @conn will return #GST_RTSP_EINTR until the connection
is set to non-flushing mode again.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="flush">
<parameter_description> start or stop the flush
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_connection_free">
<description>
Close and free @conn.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_get_ip">
<description>
Retrieve the IP address of the other end of @conn.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> The IP address as a string. this value remains valid until the
connection is closed.
</return>
</function>

<function name="gst_rtsp_connection_get_readfd">
<description>
Get the file descriptor for reading.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> the file descriptor used for reading or %NULL on error. The file
descriptor remains valid until the connection is closed.
</return>
</function>

<function name="gst_rtsp_connection_get_remember_session_id">
<description>

</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the #GstRTSPConnection remembers the session id in the
last response to set it on any further request.
</return>
</function>

<function name="gst_rtsp_connection_get_tls">
<description>
Get the TLS connection of @conn.

For client side this will return the #GTlsClientConnection when connected
over TLS.

For server side connections, this function will create a GTlsServerConnection
when called the first time and will return that same connection on subsequent
calls. The server is then responsible for configuring the TLS connection.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> #GError for error reporting, or NULL to ignore.
</parameter_description>
</parameter>
</parameters>
<return> the TLS connection for @conn.

</return>
</function>

<function name="gst_rtsp_connection_get_tunnelid">
<description>
Get the tunnel session id the connection. 


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> returns a non-empty string if @conn is being tunneled over HTTP.
</return>
</function>

<function name="gst_rtsp_connection_get_url">
<description>
Retrieve the URL of the other end of @conn.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> The URL. This value remains valid until the
connection is freed.
</return>
</function>

<function name="gst_rtsp_connection_get_write_socket">
<description>
Get the file descriptor for writing.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> the file descriptor used for writing or NULL on error. The file
descriptor remains valid until the connection is closed.
</return>
</function>

<function name="gst_rtsp_connection_is_tunneled">
<description>
Get the tunneling state of the connection. 


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> if @conn is using HTTP tunneling.
</return>
</function>

<function name="gst_rtsp_connection_next_timeout">
<description>
Calculate the next timeout for @conn, storing the result in @timeout.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_connection_poll">
<description>
Wait up to the specified @timeout for the connection to become available for
at least one of the operations specified in @events. When the function returns
with #GST_RTSP_OK, @revents will contain a bitmask of available operations on
@conn.

@timeout can be #NULL, in which case this function might block forever.

This function can be cancelled with gst_rtsp_connection_flush().


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="events">
<parameter_description> a bitmask of #GstRTSPEvent flags to check
</parameter_description>
</parameter>
<parameter name="revents">
<parameter_description> location for result flags 
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_read">
<description>
Attempt to read @size bytes into @data from the connected @conn, blocking up to
the specified @timeout. @timeout can be #NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to read
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout value or #NULL
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_receive">
<description>
Attempt to read into @message from the connected @conn, blocking up to
the specified @timeout. @timeout can be #NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the message to read
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout value or #NULL
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_reset_timeout">
<description>
Reset the timeout of @conn.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_connection_send">
<description>
Attempt to send @message to the connected @conn, blocking up to
the specified @timeout. @timeout can be #NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the message to send
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout value or #NULL
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_set_auth">
<description>
Configure @conn for authentication mode @method with @user and @pass as the
user and password respectively.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> authentication method
</parameter_description>
</parameter>
<parameter name="user">
<parameter_description> the user
</parameter_description>
</parameter>
<parameter name="pass">
<parameter_description> the password
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_connection_set_auth_param">
<description>
Setup @conn with authentication directives. This is not necesary for
methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For
#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge
in the WWW-Authenticate response header and can include realm, domain,
nonce, opaque, stale, algorithm, qop as per RFC2617.

</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="param">
<parameter_description> authentication directive
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_connection_set_http_mode">
<description>
By setting the HTTP mode to %TRUE the message parsing will support HTTP
messages in addition to the RTSP messages. It will also disable the
automatic handling of setting up an HTTP tunnel.

</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="enable">
<parameter_description> %TRUE to enable manual HTTP mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_connection_set_ip">
<description>
Set the IP address of the server.

</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="ip">
<parameter_description> an ip address
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_connection_set_proxy">
<description>
Set the proxy host and port.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="host">
<parameter_description> the proxy host
</parameter_description>
</parameter>
<parameter name="port">
<parameter_description> the proxy port
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_connection_set_qos_dscp">
<description>
Configure @conn to use the specified DSCP value.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="qos_dscp">
<parameter_description> DSCP value
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_connection_set_remember_session_id">
<description>
Sets if the #GstRTSPConnection should remember the session id from the last
response received and force it onto any further requests.

The default value is %TRUE

</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="remember">
<parameter_description> %TRUE if the connection should remember the session id
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_connection_set_tunneled">
<description>
Set the HTTP tunneling state of the connection. This must be configured before
the @conn is connected.

</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="tunneled">
<parameter_description> the new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_connection_write">
<description>
Attempt to write @size bytes of @data to the connected @conn, blocking up to
the specified @timeout. @timeout can be #NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to write
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> a timeout value or #NULL
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_find_header_field">
<description>
Convert @header to a #GstRTSPHeaderField.


</description>
<parameters>
<parameter name="header">
<parameter_description> a header string
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPHeaderField for @header or #GST_RTSP_HDR_INVALID if the
header field is unknown.
</return>
</function>

<function name="gst_rtsp_find_method">
<description>
Convert @method to a #GstRTSPMethod.


</description>
<parameters>
<parameter name="method">
<parameter_description> a method
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPMethod for @method or #GST_RTSP_INVALID if the
method is unknown.
</return>
</function>

<function name="gst_rtsp_header_allow_multiple">
<description>
Check whether @field may appear multiple times in a message.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GstRTSPHeaderField
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if multiple headers are allowed.
</return>
</function>

<function name="gst_rtsp_header_as_text">
<description>
Convert @field to a string.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GstRTSPHeaderField
</parameter_description>
</parameter>
</parameters>
<return> a string representation of @field.
</return>
</function>

<function name="gst_rtsp_message_add_header">
<description>
Add a header with key @field and @value to @msg. This function takes a copy
of @value.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> a #GstRTSPHeaderField
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value of the header
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_append_headers">
<description>
Append the currently configured headers in @msg to the #GString @str suitable
for transmission.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_message_dump">
<description>
Dump the contents of @msg to stdout.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_message_free">
<description>
Free the memory used by @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_get_body">
<description>
Get the body of @msg. @data remains valid for as long as @msg is valid and
unchanged.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> location for the data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> location for the size of @data
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_message_get_header">
<description>
Get the @indx header value with key @field from @msg. The result in @value
stays valid as long as it remains present in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> a #GstRTSPHeaderField
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> pointer to hold the result
</parameter_description>
</parameter>
<parameter name="indx">
<parameter_description> the index of the header
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key
was not found.
</return>
</function>

<function name="gst_rtsp_message_get_type">
<description>
Get the message type of @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
</parameters>
<return> the message type.
</return>
</function>

<function name="gst_rtsp_message_init">
<description>
Initialize @msg. This function is mostly used when @msg is allocated on the
stack. The reverse operation of this is gst_rtsp_message_unset().


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_init_data">
<description>
Initialize a new data #GstRTSPMessage for @channel.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="channel">
<parameter_description> a channel
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_init_request">
<description>
Initialize @msg as a request message with @method and @uri. To clear @msg
again, use gst_rtsp_message_unset().


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> the request method to use
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the uri of the request
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_init_response">
<description>
Initialize @msg with @code and @reason.

When @reason is #NULL, the default reason for @code will be used.

When @request is not #NULL, the relevant headers will be copied to the new
response message.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> the status code
</parameter_description>
</parameter>
<parameter name="reason">
<parameter_description> the status reason or %NULL
</parameter_description>
</parameter>
<parameter name="request">
<parameter_description> the request that triggered the response or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_new">
<description>
Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free().


</description>
<parameters>
<parameter name="msg">
<parameter_description> a location for the new #GstRTSPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_new_data">
<description>
Create a new data #GstRTSPMessage with @channel and store the
result message in @msg. Free with gst_rtsp_message_free().


</description>
<parameters>
<parameter name="msg">
<parameter_description> a location for the new #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="channel">
<parameter_description> the channel
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_new_request">
<description>
Create a new #GstRTSPMessage with @method and @uri and store the result
request message in @msg. Free with gst_rtsp_message_free().


</description>
<parameters>
<parameter name="msg">
<parameter_description> a location for the new #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> the request method to use
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the uri of the request
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_new_response">
<description>
Create a new response #GstRTSPMessage with @code and @reason and store the
result message in @msg. Free with gst_rtsp_message_free().

When @reason is #NULL, the default reason for @code will be used.

When @request is not #NULL, the relevant headers will be copied to the new
response message.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a location for the new #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> the status code
</parameter_description>
</parameter>
<parameter name="reason">
<parameter_description> the status reason or %NULL
</parameter_description>
</parameter>
<parameter name="request">
<parameter_description> the request that triggered the response or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_parse_data">
<description>
Parse the data message @msg and store the channel in @channel.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="channel">
<parameter_description> location to hold the channel
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_parse_request">
<description>
Parse the request message @msg and store the values @method, @uri and
@version. The result locations can be #NULL if one is not interested in its
value.

@uri remains valid for as long as @msg is valid and unchanged.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="method">
<parameter_description> location to hold the method
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> location to hold the uri
</parameter_description>
</parameter>
<parameter name="version">
<parameter_description> location to hold the version
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_parse_response">
<description>
Parse the response message @msg and store the values @code, @reason and
@version. The result locations can be #NULL if one is not interested in its
value.

@reason remains valid for as long as @msg is valid and unchanged.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> location to hold the status code
</parameter_description>
</parameter>
<parameter name="reason">
<parameter_description> location to hold the status reason
</parameter_description>
</parameter>
<parameter name="version">
<parameter_description> location to hold the version
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_remove_header">
<description>
Remove the @indx header with key @field from @msg. If @indx equals -1, all
headers will be removed.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> a #GstRTSPHeaderField
</parameter_description>
</parameter>
<parameter name="indx">
<parameter_description> the index of the header
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_set_body">
<description>
Set the body of @msg to a copy of @data.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_message_steal_body">
<description>
Take the body of @msg and store it in @data and @size. After this method,
the body and size of @msg will be set to #NULL and 0 respectively.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> location for the data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> location for the size of @data
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_message_take_body">
<description>
Set the body of @msg to @data and @size. This method takes ownership of
@data.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_message_take_header">
<description>
Add a header with key @field and @value to @msg. This function takes
ownership of @value.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> a #GstRTSPHeaderField
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value of the header
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_message_unset">
<description>
Unset the contents of @msg so that it becomes an uninitialized
#GstRTSPMessage again. This function is mostly used in combination with 
gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and
gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_method_as_text">
<description>
Convert @method to a string.


</description>
<parameters>
<parameter name="method">
<parameter_description> a #GstRTSPMethod
</parameter_description>
</parameter>
</parameters>
<return> a string representation of @method.
</return>
</function>

<function name="gst_rtsp_options_as_text">
<description>
Convert @options to a string.


</description>
<parameters>
<parameter name="options">
<parameter_description> one or more #GstRTSPMethod
</parameter_description>
</parameter>
</parameters>
<return> a new string of @options. g_free() after usage.
</return>
</function>

<function name="gst_rtsp_options_from_text">
<description>
Convert the comma separated list @options to a #GstRTSPMethod bitwise or
of methods. This functions is the reverse of gst_rtsp_options_as_text().


</description>
<parameters>
<parameter name="options">
<parameter_description> a comma separated list of options
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPMethod

</return>
</function>

<function name="gst_rtsp_range_convert_units">
<description>
Converts the range in-place between different types of units.
Ranges containing the special value #GST_RTSP_TIME_NOW can not be
converted as these are only valid for #GST_RTSP_RANGE_NPT.


</description>
<parameters>
<parameter name="range">
<parameter_description> a #GstRTSPTimeRange
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit to convert the range into
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the range could be converted
</return>
</function>

<function name="gst_rtsp_range_free">
<description>
Free the memory allocated by @range.

</description>
<parameters>
<parameter name="range">
<parameter_description> a #GstRTSPTimeRange
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_range_get_times">
<description>
Retrieve the minimum and maximum values from @range converted to
#GstClockTime in @min and @max.

A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW
and #GST_RTSP_TIME_END for @min and @max respectively.

UTC times will be converted to nanoseconds since 1900.


</description>
<parameters>
<parameter name="range">
<parameter_description> a #GstRTSPTimeRange
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> result minimum #GstClockTime
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> result maximum #GstClockTime
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.

</return>
</function>

<function name="gst_rtsp_range_parse">
<description>
Parse @rangestr to a #GstRTSPTimeRange.


</description>
<parameters>
<parameter name="rangestr">
<parameter_description> a range string to parse
</parameter_description>
</parameter>
<parameter name="range">
<parameter_description> location to hold the #GstRTSPTimeRange result
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_range_to_string">
<description>
Convert @range into a string representation.


</description>
<parameters>
<parameter name="range">
<parameter_description> a #GstRTSPTimeRange
</parameter_description>
</parameter>
</parameters>
<return> The string representation of @range. g_free() after usage.
</return>
</function>

<function name="gst_rtsp_status_as_text">
<description>
Convert @code to a string.


</description>
<parameters>
<parameter name="code">
<parameter_description> a #GstRTSPStatusCode
</parameter_description>
</parameter>
</parameters>
<return> a string representation of @code.
</return>
</function>

<function name="gst_rtsp_strresult">
<description>
Convert @result in a human readable string.


</description>
<parameters>
<parameter name="result">
<parameter_description> a #GstRTSPResult
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated string. g_free() after usage.
</return>
</function>

<function name="gst_rtsp_transport_as_text">
<description>
Convert @transport into a string that can be used to signal the transport in
an RTSP SETUP response.


</description>
<parameters>
<parameter name="transport">
<parameter_description> a #GstRTSPTransport
</parameter_description>
</parameter>
</parameters>
<return> a string describing the RTSP transport or #NULL when the transport
is invalid.
</return>
</function>

<function name="gst_rtsp_transport_free">
<description>
Free the memory used by @transport.


</description>
<parameters>
<parameter name="transport">
<parameter_description> a #GstRTSPTransport
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_transport_get_manager">
<description>
Get the #GstElement that can handle the buffers transported over @trans.

It is possible that there are several managers available, use @option to
selected one.

@manager will contain an element name or #NULL when no manager is
needed/available for @trans.


</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstRTSPTransMode
</parameter_description>
</parameter>
<parameter name="manager">
<parameter_description> location to hold the result
</parameter_description>
</parameter>
<parameter name="option">
<parameter_description> option index.
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK. 
</return>
</function>

<function name="gst_rtsp_transport_get_mime">
<description>
Get the mime type of the transport mode @trans. This mime type is typically
used to generate #GstCaps on buffers.


</description>
<parameters>
<parameter name="trans">
<parameter_description> a #GstRTSPTransMode
</parameter_description>
</parameter>
<parameter name="mime">
<parameter_description> location to hold the result
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK. 
</return>
</function>

<function name="gst_rtsp_transport_init">
<description>
Initialize @transport so that it can be used.


</description>
<parameters>
<parameter name="transport">
<parameter_description> a #GstRTSPTransport
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK. 
</return>
</function>

<function name="gst_rtsp_transport_new">
<description>
Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free()
after usage.


</description>
<parameters>
<parameter name="transport">
<parameter_description> location to hold the new #GstRTSPTransport
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult. 
</return>
</function>

<function name="gst_rtsp_transport_parse">
<description>
Parse the RTSP transport string @str into @transport.


</description>
<parameters>
<parameter name="str">
<parameter_description> a transport string
</parameter_description>
</parameter>
<parameter name="transport">
<parameter_description> a #GstRTSPTransport
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_url_copy">
<description>
Make a copy of @url.


</description>
<parameters>
<parameter name="url">
<parameter_description> a #GstRTSPUrl
</parameter_description>
</parameter>
</parameters>
<return> a copy of @url. Free with gst_rtsp_url_free () after usage.
</return>
</function>

<function name="gst_rtsp_url_decode_path_components">
<description>
Splits the path of @url on '/' boundaries, decoding the resulting components,

The decoding performed by this routine is &quot;URI decoding&quot;, as defined in RFC
3986, commonly known as percent-decoding. For example, a string &quot;foo\%2fbar&quot;
will decode to &quot;foo/bar&quot; -- the \%2f being replaced by the corresponding byte
with hex value 0x2f. Note that there is no guarantee that the resulting byte
sequence is valid in any given encoding. As a special case, \%00 is not
unescaped to NUL, as that would prematurely terminate the string.

Also note that since paths usually start with a slash, the first component
will usually be the empty string.


</description>
<parameters>
<parameter name="url">
<parameter_description> a #GstRTSPUrl
</parameter_description>
</parameter>
</parameters>
<return> a string vector. g_strfreev() after usage.
</return>
</function>

<function name="gst_rtsp_url_free">
<description>
Free the memory used by @url.

</description>
<parameters>
<parameter name="url">
<parameter_description> a #GstRTSPUrl
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_url_get_port">
<description>
Get the port number of @url.


</description>
<parameters>
<parameter name="url">
<parameter_description> a #GstRTSPUrl
</parameter_description>
</parameter>
<parameter name="port">
<parameter_description> location to hold the port
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_url_get_request_uri">
<description>
Get a newly allocated string describing the request URI for @url. 


</description>
<parameters>
<parameter name="url">
<parameter_description> a #GstRTSPUrl
</parameter_description>
</parameter>
</parameters>
<return> a string with the request URI. g_free() after usage.
</return>
</function>

<function name="gst_rtsp_url_parse">
<description>
Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage
with gst_rtsp_url_free().


</description>
<parameters>
<parameter name="urlstr">
<parameter_description> the url string to parse
</parameter_description>
</parameter>
<parameter name="url">
<parameter_description> location to hold the result.
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPResult.
</return>
</function>

<function name="gst_rtsp_url_set_port">
<description>
Set the port number in @url to @port.


</description>
<parameters>
<parameter name="url">
<parameter_description> a #GstRTSPUrl
</parameter_description>
</parameter>
<parameter name="port">
<parameter_description> the port
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK.
</return>
</function>

<function name="gst_rtsp_version_as_text">
<description>
Convert @version to a string.


</description>
<parameters>
<parameter name="version">
<parameter_description> a #GstRTSPVersion
</parameter_description>
</parameter>
</parameters>
<return> a string representation of @version.
</return>
</function>

<function name="gst_rtsp_watch_attach">
<description>
Adds a #GstRTSPWatch to a context so that it will be executed within that context.


</description>
<parameters>
<parameter name="watch">
<parameter_description> a #GstRTSPWatch
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a GMainContext (if NULL, the default context will be used)
</parameter_description>
</parameter>
</parameters>
<return> the ID (greater than 0) for the watch within the GMainContext. 
</return>
</function>

<function name="gst_rtsp_watch_get_send_backlog">
<description>
Get the maximum amount of bytes and messages that will be queued in @watch.
See gst_rtsp_watch_set_send_backlog().


</description>
<parameters>
<parameter name="watch">
<parameter_description> a #GstRTSPWatch
</parameter_description>
</parameter>
<parameter name="bytes">
<parameter_description> maximum bytes
</parameter_description>
</parameter>
<parameter name="messages">
<parameter_description> maximum messages
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_watch_new">
<description>
Create a watch object for @conn. The functions provided in @funcs will be
called with @user_data when activity happened on the watch.

The new watch is usually created so that it can be attached to a
maincontext with gst_rtsp_watch_attach(). 

@conn must exist for the entire lifetime of the watch.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstRTSPConnection
</parameter_description>
</parameter>
<parameter name="funcs">
<parameter_description> watch functions
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @funcs
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> notify when @user_data is not referenced anymore
</parameter_description>
</parameter>
</parameters>
<return> a #GstRTSPWatch that can be used for asynchronous RTSP
communication. Free with gst_rtsp_watch_unref () after usage.
</return>
</function>

<function name="gst_rtsp_watch_reset">
<description>
Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel()
when the file descriptors of the connection might have changed.

</description>
<parameters>
<parameter name="watch">
<parameter_description> a #GstRTSPWatch
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_watch_send_message">
<description>
Send a @message using the connection of the @watch. If it cannot be sent
immediately, it will be queued for transmission in @watch. The contents of
@message will then be serialized and transmitted when the connection of the
@watch becomes writable. In case the @message is queued, the ID returned in
@id will be non-zero and used as the ID argument in the message_sent
callback.


</description>
<parameters>
<parameter name="watch">
<parameter_description> a #GstRTSPWatch
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> a #GstRTSPMessage
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> location for a message ID or %NULL
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success.
</return>
</function>

<function name="gst_rtsp_watch_set_send_backlog">
<description>
Set the maximum amount of bytes and messages that will be queued in @watch.
When the maximum amounts are exceeded, gst_rtsp_watch_write_data() and
gst_rtsp_watch_send_message() will return #GST_RTSP_ENOMEM.

A value of 0 for @bytes or @messages means no limits.


</description>
<parameters>
<parameter name="watch">
<parameter_description> a #GstRTSPWatch
</parameter_description>
</parameter>
<parameter name="bytes">
<parameter_description> maximum bytes
</parameter_description>
</parameter>
<parameter name="messages">
<parameter_description> maximum messages
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_watch_unref">
<description>
Decreases the reference count of @watch by one. If the resulting reference
count is zero the watch and associated memory will be destroyed.

</description>
<parameters>
<parameter name="watch">
<parameter_description> a #GstRTSPWatch
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_rtsp_watch_write_data">
<description>
Write @data using the connection of the @watch. If it cannot be sent
immediately, it will be queued for transmission in @watch. The contents of
@message will then be serialized and transmitted when the connection of the
@watch becomes writable. In case the @message is queued, the ID returned in
@id will be non-zero and used as the ID argument in the message_sent
callback.

This function will take ownership of @data and g_free() it after use.

If the amount of queued data exceeds the limits set with
gst_rtsp_watch_set_send_backlog(), this function will return
#GST_RTSP_ENOMEM.


</description>
<parameters>
<parameter name="watch">
<parameter_description> a #GstRTSPWatch
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to queue
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> location for a message ID or %NULL
</parameter_description>
</parameter>
</parameters>
<return> #GST_RTSP_OK on success. #GST_RTSP_ENOMEM when the backlog limits
are reached.
</return>
</function>

<function name="gst_sample_get_buffer">
<description>
Get the buffer associated with @sample


</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
</parameters>
<return> the buffer of @sample or NULL when there
is no buffer. The buffer remains valid as long as @sample is valid.
</return>
</function>

<function name="gst_sample_get_caps">
<description>
Get the caps associated with @sample


</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
</parameters>
<return> the caps of @sample or NULL when there
is no caps. The caps remain valid as long as @sample is valid.
</return>
</function>

<function name="gst_sample_get_info">
<description>
Get extra information associated with @sample.


</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
</parameters>
<return> the extra info of @sample.
The info remains valid as long as @sample is valid.
</return>
</function>

<function name="gst_sample_get_segment">
<description>
Get the segment associated with @sample


</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
</parameters>
<return> the segment of @sample.
The segment remains valid as long as @sample is valid.
</return>
</function>

<function name="gst_sample_new">
<description>
Create a new #GstSample with the provided details.

Free-function: gst_sample_unref


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a #GstBuffer, or NULL
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps, or NULL
</parameter_description>
</parameter>
<parameter name="segment">
<parameter_description> a #GstSegment, or NULL
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstStructure, or NULL
</parameter_description>
</parameter>
</parameters>
<return> the new #GstSample. gst_sample_unref()
after usage.
</return>
</function>

<function name="gst_sample_ref">
<description>
Increases the refcount of the given sample by one.


</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
</parameters>
<return> @sample
</return>
</function>

<function name="gst_sample_unref">
<description>
Decreases the refcount of the sample. If the refcount reaches 0, the
sample will be freed.

</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_sdp_address_is_multicast">
<description>
Check if the given @addr is a multicast address.


</description>
<parameters>
<parameter name="nettype">
<parameter_description> a network type
</parameter_description>
</parameter>
<parameter name="addrtype">
<parameter_description> an address type
</parameter_description>
</parameter>
<parameter name="addr">
<parameter_description> an address
</parameter_description>
</parameter>
</parameters>
<return> TRUE when @addr is multicast.
</return>
</function>

<function name="gst_sdp_attribute_clear">
<description>
Clear the attribute.


</description>
<parameters>
<parameter name="attr">
<parameter_description> a #GstSDPAttribute
</parameter_description>
</parameter>
</parameters>
<return> @GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_attribute_set">
<description>
Set the attribute with @key and @value.


</description>
<parameters>
<parameter name="attr">
<parameter_description> a #GstSDPAttribute
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> the key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value
</parameter_description>
</parameter>
</parameters>
<return> @GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_bandwidth_clear">
<description>
Reset the bandwidth information in @bw.


</description>
<parameters>
<parameter name="bw">
<parameter_description> a #GstSDPBandwidth
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_bandwidth_set">
<description>
Set bandwidth information in @bw.


</description>
<parameters>
<parameter name="bw">
<parameter_description> a #GstSDPBandwidth
</parameter_description>
</parameter>
<parameter name="bwtype">
<parameter_description> the bandwidth modifier type
</parameter_description>
</parameter>
<parameter name="bandwidth">
<parameter_description> the bandwidth in kilobits per second
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_connection_clear">
<description>
Clear the connection.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstSDPConnection
</parameter_description>
</parameter>
</parameters>
<return> @GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_connection_set">
<description>
Set the connection with the given parameters.


</description>
<parameters>
<parameter name="conn">
<parameter_description> a #GstSDPConnection
</parameter_description>
</parameter>
<parameter name="nettype">
<parameter_description> the type of network. &quot;IN&quot; is defined to have the meaning
&quot;Internet&quot;.
</parameter_description>
</parameter>
<parameter name="addrtype">
<parameter_description> the type of address.
</parameter_description>
</parameter>
<parameter name="address">
<parameter_description> the address
</parameter_description>
</parameter>
<parameter name="ttl">
<parameter_description> the time to live of the address
</parameter_description>
</parameter>
<parameter name="addr_number">
<parameter_description> the number of layers
</parameter_description>
</parameter>
</parameters>
<return> @GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_add_attribute">
<description>
Add the attribute with @key and @value to @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a value
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_media_add_bandwidth">
<description>
Add the bandwidth information with @bwtype and @bandwidth to @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="bwtype">
<parameter_description> the bandwidth modifier type
</parameter_description>
</parameter>
<parameter name="bandwidth">
<parameter_description> the bandwidth in kilobits per second
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_media_add_connection">
<description>
Add the given connection parameters to @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="nettype">
<parameter_description> the type of network. &quot;IN&quot; is defined to have the meaning
&quot;Internet&quot;.
</parameter_description>
</parameter>
<parameter name="addrtype">
<parameter_description> the type of address.
</parameter_description>
</parameter>
<parameter name="address">
<parameter_description> the address
</parameter_description>
</parameter>
<parameter name="ttl">
<parameter_description> the time to live of the address
</parameter_description>
</parameter>
<parameter name="addr_number">
<parameter_description> the number of layers
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_media_add_format">
<description>
Add the format information to @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_media_as_text">
<description>
Convert the contents of @media to a text string.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> A dynamically allocated string representing the media.
</return>
</function>

<function name="gst_sdp_media_attributes_len">
<description>
Get the number of attribute fields in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the number of attributes in @media.
</return>
</function>

<function name="gst_sdp_media_bandwidths_len">
<description>
Get the number of bandwidth fields in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the number of bandwidths in @media.
</return>
</function>

<function name="gst_sdp_media_connections_len">
<description>
Get the number of connection fields in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the number of connections in @media.
</return>
</function>

<function name="gst_sdp_media_copy">
<description>
Allocate a new copy of @media and store the result in @copy. The value in
@copy should be release with gst_sdp_media_free function.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="copy">
<parameter_description> pointer to new #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult

</return>
</function>

<function name="gst_sdp_media_formats_len">
<description>
Get the number of formats in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the number of formats in @media.
</return>
</function>

<function name="gst_sdp_media_free">
<description>
Free all resources allocated by @media. @media should not be used anymore after
this function. This function should be used when @media was dynamically
allocated with gst_sdp_media_new().


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_media_get_attribute">
<description>
Get the attribute at position @idx in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> the #GstSDPAttribute at position @idx.
</return>
</function>

<function name="gst_sdp_media_get_attribute_val">
<description>
Get the first attribute value for @key in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return> the first attribute value for @key.
</return>
</function>

<function name="gst_sdp_media_get_attribute_val_n">
<description>
Get the @nth attribute value for @key in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> the @nth attribute value.
</return>
</function>

<function name="gst_sdp_media_get_bandwidth">
<description>
Get the bandwidth at position @idx in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> the #GstSDPBandwidth at position @idx.
</return>
</function>

<function name="gst_sdp_media_get_connection">
<description>
Get the connection at position @idx in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> the #GstSDPConnection at position @idx.
</return>
</function>

<function name="gst_sdp_media_get_format">
<description>
Get the format information at position @idx in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> the format at position @idx.
</return>
</function>

<function name="gst_sdp_media_get_information">
<description>
Get the information of @media


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the information of @media.
</return>
</function>

<function name="gst_sdp_media_get_key">
<description>
Get the encryption information from @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPKey.
</return>
</function>

<function name="gst_sdp_media_get_media">
<description>
Get the media description of @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the media description.
</return>
</function>

<function name="gst_sdp_media_get_num_ports">
<description>
Get the number of ports for @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the number of ports for @media.
</return>
</function>

<function name="gst_sdp_media_get_port">
<description>
Get the port number for @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the port number of @media.
</return>
</function>

<function name="gst_sdp_media_get_proto">
<description>
Get the transport protocol of @media


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> the transport protocol of @media.
</return>
</function>

<function name="gst_sdp_media_init">
<description>
Initialize @media so that its contents are as if it was freshly allocated
with gst_sdp_media_new(). This function is mostly used to initialize a media
allocated on the stack. gst_sdp_media_uninit() undoes this operation.

When this function is invoked on newly allocated data (with malloc or on the
stack), its contents should be set to 0 before calling this function.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_media_insert_attribute">
<description>
Insert the attribute to @media at @idx. When @idx is -1,
the attribute is appended.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="attr">
<parameter_description> a #GstSDPAttribute
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_insert_bandwidth">
<description>
Insert the bandwidth information to @media at @idx. When @idx is -1,
the bandwidth is appended.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="bw">
<parameter_description> a #GstSDPBandwidth
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_insert_connection">
<description>
Insert the connection information to @media at @idx. When @idx is -1,
the connection is appended.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="conn">
<parameter_description> a #GstSDPConnection
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_insert_format">
<description>
Insert the format information to @media at @idx. When @idx is -1,
the format is appended.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_new">
<description>
Allocate a new GstSDPMedia and store the result in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> pointer to new #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_media_remove_attribute">
<description>
Remove the attribute in @media at @idx.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_remove_bandwidth">
<description>
Remove the bandwidth information in @media at @idx.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_remove_connection">
<description>
Remove the connection information in @media at @idx.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_remove_format">
<description>
Remove the format information in @media at @idx.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_replace_attribute">
<description>
Replace the attribute in @media at @idx with @attr.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="attr">
<parameter_description> a #GstSDPAttribute
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_replace_bandwidth">
<description>
Replace the bandwidth information in @media at @idx with @bw.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="bw">
<parameter_description> a #GstSDPBandwidth
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_replace_connection">
<description>
Replace the connection information in @media at @idx with @conn.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="conn">
<parameter_description> a #GstSDPConnection
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_replace_format">
<description>
Replace the format information in @media at @idx with @format.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.

</return>
</function>

<function name="gst_sdp_media_set_information">
<description>
Set the media information of @media to @information.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="information">
<parameter_description> the media information
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_media_set_key">
<description>
Adds the encryption information to @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the encryption type
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the encryption data
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_media_set_media">
<description>
Set the media description of @media to @med.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="med">
<parameter_description> the media description
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_media_set_port_info">
<description>
Set the port information in @media.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="port">
<parameter_description> the port number
</parameter_description>
</parameter>
<parameter name="num_ports">
<parameter_description> the number of ports
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_media_set_proto">
<description>
Set the media transport protocol of @media to @proto.


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
<parameter name="proto">
<parameter_description> the media transport protocol
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_media_uninit">
<description>
Free all resources allocated in @media. @media should not be used anymore after
this function. This function should be used when @media was allocated on the
stack and initialized with gst_sdp_media_init().


</description>
<parameters>
<parameter name="media">
<parameter_description> a #GstSDPMedia
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_add_attribute">
<description>
Add the attribute with @key and @value to @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> the key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value
</parameter_description>
</parameter>
</parameters>
<return> @GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_message_add_bandwidth">
<description>
Add the specified bandwidth information to @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="bwtype">
<parameter_description> the bandwidth modifier type
</parameter_description>
</parameter>
<parameter name="bandwidth">
<parameter_description> the bandwidth in kilobits per second
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_add_email">
<description>
Add @email to the list of emails in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="email">
<parameter_description> an email
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_add_media">
<description>
Adds @media to the array of medias in @msg. This function takes ownership of
the contents of @media so that @media will have to be reinitialized with
gst_sdp_media_init() before it can be used again.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="media">
<parameter_description> a #GstSDPMedia to add
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_add_phone">
<description>
Add @phone to the list of phones in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="phone">
<parameter_description> a phone
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_add_time">
<description>
Add time information @start and @stop to @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start time
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the stop time
</parameter_description>
</parameter>
<parameter name="repeat">
<parameter_description> the repeat times
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_add_zone">
<description>
Add time zone information to @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="adj_time">
<parameter_description> the NTP time that a time zone adjustment happens
</parameter_description>
</parameter>
<parameter name="typed_time">
<parameter_description> the offset from the time when the session was first scheduled
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_as_text">
<description>
Convert the contents of @msg to a text string.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> A dynamically allocated string representing the SDP description.
</return>
</function>

<function name="gst_sdp_message_as_uri">
<description>
Creates a uri from @msg with the given @scheme. The uri has the format:

@scheme:///[#type=value *[&amp;type=value]]

Where each value is url encoded.


</description>
<parameters>
<parameter name="scheme">
<parameter_description> the uri scheme
</parameter_description>
</parameter>
<parameter name="msg">
<parameter_description> the #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a uri for @msg.
</return>
</function>

<function name="gst_sdp_message_attributes_len">
<description>
Get the number of attributes in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> the number of attributes in @msg.
</return>
</function>

<function name="gst_sdp_message_bandwidths_len">
<description>
Get the number of bandwidth information in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> the number of bandwidth information in @msg.
</return>
</function>

<function name="gst_sdp_message_copy">
<description>
Allocate a new copy of @msg and store the result in @copy. The value in
@copy should be release with gst_sdp_message_free function.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="copy">
<parameter_description> pointer to new #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult

</return>
</function>

<function name="gst_sdp_message_dump">
<description>
Dump the parsed contents of @msg to stdout.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_emails_len">
<description>
Get the number of emails in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> the number of emails in @msg.
</return>
</function>

<function name="gst_sdp_message_free">
<description>
Free all resources allocated by @msg. @msg should not be used anymore after
this function. This function should be used when @msg was dynamically
allocated with gst_sdp_message_new().


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_get_attribute">
<description>
Get the attribute at position @idx in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> the #GstSDPAttribute at position @idx.
</return>
</function>

<function name="gst_sdp_message_get_attribute_val">
<description>
Get the first attribute with key @key in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> the key
</parameter_description>
</parameter>
</parameters>
<return> the attribute value of the first attribute with @key.
</return>
</function>

<function name="gst_sdp_message_get_attribute_val_n">
<description>
Get the @nth attribute with key @key in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> the key
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> the attribute value of the @nth attribute with @key.
</return>
</function>

<function name="gst_sdp_message_get_bandwidth">
<description>
Get the bandwidth at index @idx from @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the bandwidth index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPBandwidth.
</return>
</function>

<function name="gst_sdp_message_get_connection">
<description>
Get the connection of @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPConnection. The result remains valid as long as @msg is valid.
</return>
</function>

<function name="gst_sdp_message_get_email">
<description>
Get the email with number @idx from @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an email index
</parameter_description>
</parameter>
</parameters>
<return> the email at position @idx.
</return>
</function>

<function name="gst_sdp_message_get_information">
<description>
Get the information in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_get_key">
<description>
Get the encryption information from @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPKey.
</return>
</function>

<function name="gst_sdp_message_get_media">
<description>
Get the media description at index @idx in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPMedia.
</return>
</function>

<function name="gst_sdp_message_get_origin">
<description>
Get the origin of @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPOrigin. The result remains valid as long as @msg is valid.
</return>
</function>

<function name="gst_sdp_message_get_phone">
<description>
Get the phone with number @idx from @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> a phone index
</parameter_description>
</parameter>
</parameters>
<return> the phone at position @idx.
</return>
</function>

<function name="gst_sdp_message_get_session_name">
<description>
Get the session name in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_get_time">
<description>
Get time information with index @idx from @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the time index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPTime.
</return>
</function>

<function name="gst_sdp_message_get_uri">
<description>
Get the URI in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_get_version">
<description>
Get the version in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_get_zone">
<description>
Get time zone information with index @idx from @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the zone index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPZone.
</return>
</function>

<function name="gst_sdp_message_init">
<description>
Initialize @msg so that its contents are as if it was freshly allocated
with gst_sdp_message_new(). This function is mostly used to initialize a message
allocated on the stack. gst_sdp_message_uninit() undoes this operation.

When this function is invoked on newly allocated data (with malloc or on the
stack), its contents should be set to 0 before calling this function.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_insert_attribute">
<description>
Insert attribute into the array of attributes in @msg
at index @idx.
When -1 is given as @idx, the attribute is inserted at the end.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
@attribute a #GstSDPAttribute
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_insert_bandwidth">
<description>
Insert bandwidth parameters into the array of bandwidths in @msg
at index @idx.
When -1 is given as @idx, the bandwidth is inserted at the end.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="bwtype">
<parameter_description> the bandwidth modifier type
</parameter_description>
</parameter>
<parameter name="bandwidth">
<parameter_description> the bandwidth in kilobits per second
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_insert_email">
<description>
Insert @email into the array of emails in @msg at index @idx.
When -1 is given as @idx, the email is inserted at the end.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="email">
<parameter_description> an email
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_insert_phone">
<description>
Insert @phone into the array of phone numbers in @msg at index @idx.
When -1 is given as @idx, the phone is inserted at the end.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> a phone index
</parameter_description>
</parameter>
<parameter name="phone">
<parameter_description> a phone
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_insert_time">
<description>
Insert time parameters into the array of times in @msg
at index @idx.
When -1 is given as @idx, the times are inserted at the end.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
</parameter_description>
</parameter>
<parameter name="t">
<parameter_description> a #GstSDPTime
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_insert_zone">
<description>
Insert zone parameters into the array of zones in @msg
at index @idx.
When -1 is given as @idx, the zone is inserted at the end.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an index
@zone a #GstSDPZone
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_medias_len">
<description>
Get the number of media descriptions in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> the number of media descriptions in @msg.
</return>
</function>

<function name="gst_sdp_message_new">
<description>
Allocate a new GstSDPMessage and store the result in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> pointer to new #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_parse_buffer">
<description>
Parse the contents of @size bytes pointed to by @data and store the result in
@msg.


</description>
<parameters>
<parameter name="data">
<parameter_description> the start of the buffer
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the buffer
</parameter_description>
</parameter>
<parameter name="msg">
<parameter_description> the result #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK on success.
</return>
</function>

<function name="gst_sdp_message_parse_uri">
<description>
Parse the null-terminated @uri and store the result in @msg.

The uri should be of the form:

scheme://[address[:ttl=ttl][:noa=noa]]/[sessionname]
[#type=value *[&amp;type=value]]

where value is url encoded. This looslely resembles
http://tools.ietf.org/html/draft-fujikawa-sdp-url-01


</description>
<parameters>
<parameter name="uri">
<parameter_description> the start of the uri
</parameter_description>
</parameter>
<parameter name="msg">
<parameter_description> the result #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK on success.
</return>
</function>

<function name="gst_sdp_message_phones_len">
<description>
Get the number of phones in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> the number of phones in @msg.
</return>
</function>

<function name="gst_sdp_message_remove_attribute">
<description>
Remove the attribute in @msg at index @idx.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_remove_bandwidth">
<description>
Remove the bandwidth information in @msg at index @idx.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the bandwidth index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_remove_email">
<description>
Remove the email in @msg at index @idx.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an email index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_remove_phone">
<description>
Remove the phone number in @msg at index @idx.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> a phone index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_remove_time">
<description>
Remove the time information in @msg at index @idx.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_remove_zone">
<description>
Remove the zone information in @msg at index @idx.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_replace_attribute">
<description>
Replace the attribute in @msg at index @idx with @attribute.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> a #GstSDPAttribute
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_replace_bandwidth">
<description>
Replace the bandwidth information in @msg at index @idx with @bwtype and @bandwidth.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the bandwidth index
</parameter_description>
</parameter>
<parameter name="bwtype">
<parameter_description> the bandwidth modifier type
</parameter_description>
</parameter>
<parameter name="bandwidth">
<parameter_description> the bandwidth in kilobits per second
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_replace_email">
<description>
Replace the email in @msg at index @idx with @email.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> an email index
</parameter_description>
</parameter>
<parameter name="email">
<parameter_description> an email
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_replace_phone">
<description>
Replace the phone number in @msg at index @idx with @phone.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> a phone index
</parameter_description>
</parameter>
<parameter name="phone">
<parameter_description> a phone
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_replace_time">
<description>
Replace the time information in @msg at index @idx with @t.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
<parameter name="t">
<parameter_description> a #GstSDPTime
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_replace_zone">
<description>
Replace the zone information in @msg at index @idx with @zone.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the index
</parameter_description>
</parameter>
<parameter name="zone">
<parameter_description> a #GstSDPZone
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_message_set_connection">
<description>
Configure the SDP connection in @msg with the given parameters.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="nettype">
<parameter_description> the type of network. &quot;IN&quot; is defined to have the meaning
&quot;Internet&quot;.
</parameter_description>
</parameter>
<parameter name="addrtype">
<parameter_description> the type of address.
</parameter_description>
</parameter>
<parameter name="address">
<parameter_description> the address
</parameter_description>
</parameter>
<parameter name="ttl">
<parameter_description> the time to live of the address
</parameter_description>
</parameter>
<parameter name="addr_number">
<parameter_description> the number of layers
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_set_information">
<description>
Set the information in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="information">
<parameter_description> the information
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_set_key">
<description>
Adds the encryption information to @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the encryption type
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the encryption data
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_set_origin">
<description>
Configure the SDP origin in @msg with the given parameters.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="username">
<parameter_description> the user name
</parameter_description>
</parameter>
<parameter name="sess_id">
<parameter_description> a session id
</parameter_description>
</parameter>
<parameter name="sess_version">
<parameter_description> a session version
</parameter_description>
</parameter>
<parameter name="nettype">
<parameter_description> a network type
</parameter_description>
</parameter>
<parameter name="addrtype">
<parameter_description> an address type
</parameter_description>
</parameter>
<parameter name="addr">
<parameter_description> an address
</parameter_description>
</parameter>
</parameters>
<return> #GST_SDP_OK.
</return>
</function>

<function name="gst_sdp_message_set_session_name">
<description>
Set the session name in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="session_name">
<parameter_description> the session name
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_set_uri">
<description>
Set the URI in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the URI
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_set_version">
<description>
Set the version in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
<parameter name="version">
<parameter_description> the version
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_times_len">
<description>
Get the number of time information entries in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> the number of time information entries in @msg.
</return>
</function>

<function name="gst_sdp_message_uninit">
<description>
Free all resources allocated in @msg. @msg should not be used anymore after
this function. This function should be used when @msg was allocated on the
stack and initialized with gst_sdp_message_init().


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.
</return>
</function>

<function name="gst_sdp_message_zones_len">
<description>
Get the number of time zone information entries in @msg.


</description>
<parameters>
<parameter name="msg">
<parameter_description> a #GstSDPMessage
</parameter_description>
</parameter>
</parameters>
<return> the number of time zone information entries in @msg.
</return>
</function>

<function name="gst_sdp_time_clear">
<description>
Reset the time information in @t.


</description>
<parameters>
<parameter name="t">
<parameter_description> a #GstSDPTime
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_time_set">
<description>
Set time information @start, @stop and @repeat in @t.


</description>
<parameters>
<parameter name="t">
<parameter_description> a #GstSDPTime
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start time
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the stop time
</parameter_description>
</parameter>
<parameter name="repeat">
<parameter_description> the repeat times
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_zone_clear">
<description>
Reset the zone information in @zone.


</description>
<parameters>
<parameter name="zone">
<parameter_description> a #GstSDPZone
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_sdp_zone_set">
<description>
Set zone information in @zone.


</description>
<parameters>
<parameter name="zone">
<parameter_description> a #GstSDPZone
</parameter_description>
</parameter>
<parameter name="adj_time">
<parameter_description> the NTP time that a time zone adjustment happens
</parameter_description>
</parameter>
<parameter name="typed_time">
<parameter_description> the offset from the time when the session was first scheduled
</parameter_description>
</parameter>
</parameters>
<return> a #GstSDPResult.

</return>
</function>

<function name="gst_segment_clip">
<description>
Clip the given @start and @stop values to the segment boundaries given
in @segment. @start and @stop are compared and clipped to @segment
start and stop values.

If the function returns FALSE, @start and @stop are known to fall
outside of @segment and @clip_start and @clip_stop are not updated.

When the function returns TRUE, @clip_start and @clip_stop will be
updated. If @clip_start or @clip_stop are different from @start or @stop
respectively, the region fell partially in the segment.

Note that when @stop is -1, @clip_stop will be set to the end of the
segment. Depending on the use case, this may or may not be what you want.


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment structure.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the segment.
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start position in the segment
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the stop position in the segment
</parameter_description>
</parameter>
<parameter name="clip_start">
<parameter_description> the clipped start position in the segment
</parameter_description>
</parameter>
<parameter name="clip_stop">
<parameter_description> the clipped stop position in the segment
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the given @start and @stop times fall partially or
completely in @segment, FALSE if the values are completely outside
of the segment.
</return>
</function>

<function name="gst_segment_copy">
<description>
Create a copy of given @segment.

Free-function: gst_segment_free


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment
</parameter_description>
</parameter>
</parameters>
<return> a new #GstSegment, free with gst_segment_free().
</return>
</function>

<function name="gst_segment_copy_into">
<description>
Copy the contents of @src into @dest.

</description>
<parameters>
<parameter name="src">
<parameter_description> a #GstSegment
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> a #GstSegment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_segment_do_seek">
<description>
Update the segment structure with the field values of a seek event (see
gst_event_new_seek()).

After calling this method, the segment field position and time will
contain the requested new position in the segment. The new requested
position in the segment depends on @rate and @start_type and @stop_type.

For positive @rate, the new position in the segment is the new @segment
start field when it was updated with a @start_type different from
#GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
(#GST_SEEK_TYPE_NONE), @start is ignored and @segment position is
unmodified.

For negative @rate, the new position in the segment is the new @segment
stop field when it was updated with a @stop_type different from
#GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
duration of the segment will be used to update the stop position.
If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
@stop is ignored and @segment position is unmodified.

The applied rate of the segment will be set to 1.0 by default.
If the caller can apply a rate change, it should update @segment
rate and applied_rate after calling this function.

@update will be set to TRUE if a seek should be performed to the segment
position field. This field can be FALSE if, for example, only the @rate
has been changed but not the playback position.


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment structure.
</parameter_description>
</parameter>
<parameter name="rate">
<parameter_description> the rate of the segment.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the segment.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the segment flags for the segment
</parameter_description>
</parameter>
<parameter name="start_type">
<parameter_description> the seek method
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the seek start value
</parameter_description>
</parameter>
<parameter name="stop_type">
<parameter_description> the seek method
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the seek stop value
</parameter_description>
</parameter>
<parameter name="update">
<parameter_description> boolean holding whether position was updated.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the seek could be performed.
</return>
</function>

<function name="gst_segment_free">
<description>
Free the allocated segment @segment.

</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_segment_init">
<description>
The start/position fields are set to 0 and the stop/duration
fields are set to -1 (unknown). The default rate of 1.0 and no
flags are set.

Initialize @segment to its default values.

</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment structure.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the segment.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_segment_new">
<description>
Allocate a new #GstSegment structure and initialize it using
gst_segment_init().

Free-function: gst_segment_free


</description>
<parameters>
</parameters>
<return> a new #GstSegment, free with gst_segment_free().
</return>
</function>

<function name="gst_segment_set_running_time">
<description>
Adjust the start/stop and base values of @segment such that the next valid
buffer will be one with @running_time.


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment structure.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the segment.
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> the running_time in the segment
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the segment could be updated successfully. If %FALSE is
returned, @running_time is -1 or not in @segment.
</return>
</function>

<function name="gst_segment_to_position">
<description>
Convert @running_time into a position in the segment so that
gst_segment_to_running_time() with that position returns @running_time.


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment structure.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the segment.
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> the running_time in the segment
</parameter_description>
</parameter>
</parameters>
<return> the position in the segment for @running_time. This function returns
-1 when @running_time is -1 or when it is not inside @segment.
</return>
</function>

<function name="gst_segment_to_running_time">
<description>
Translate @position to the total running time using the currently configured
segment. Position is a value between @segment start and stop time.

This function is typically used by elements that need to synchronize to the
global clock in a pipeline. The runnning time is a constantly increasing value
starting from 0. When gst_segment_init() is called, this value will reset to
0.

This function returns -1 if the position is outside of @segment start and stop.


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment structure.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the segment.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position in the segment
</parameter_description>
</parameter>
</parameters>
<return> the position as the total running time or -1 when an invalid position
was given.
</return>
</function>

<function name="gst_segment_to_stream_time">
<description>
Translate @position to stream time using the currently configured
segment. The @position value must be between @segment start and
stop value.

This function is typically used by elements that need to operate on
the stream time of the buffers it receives, such as effect plugins.
In those use cases, @position is typically the buffer timestamp or
clock time that one wants to convert to the stream time.
The stream time is always between 0 and the total duration of the
media stream.


</description>
<parameters>
<parameter name="segment">
<parameter_description> a #GstSegment structure.
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format of the segment.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position in the segment
</parameter_description>
</parameter>
</parameters>
<return> the position in stream_time or -1 when an invalid position
was given.
</return>
</function>

<function name="gst_segtrap_is_enabled">
<description>
Some functions in the GStreamer core might install a custom SIGSEGV handler
to better catch and report errors to the application. Currently this feature
is enabled by default when loading plugins.

Applications might want to disable this behaviour with the
gst_segtrap_set_enabled() function. This is typically done if the application
wants to install its own handler without GStreamer interfering.


</description>
<parameters>
</parameters>
<return> %TRUE if GStreamer is allowed to install a custom SIGSEGV handler.
</return>
</function>

<function name="gst_segtrap_set_enabled">
<description>
Applications might want to disable/enable the SIGSEGV handling of
the GStreamer core. See gst_segtrap_is_enabled() for more information.

</description>
<parameters>
<parameter name="enabled">
<parameter_description> whether a custom SIGSEGV handler should be installed.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_static_caps_cleanup">
<description>
Clean up the cached caps contained in @static_caps.

</description>
<parameters>
<parameter name="static_caps">
<parameter_description> the #GstStaticCaps to clean
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_static_caps_get">
<description>
Converts a #GstStaticCaps to a #GstCaps.


</description>
<parameters>
<parameter name="static_caps">
<parameter_description> the #GstStaticCaps to convert
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GstCaps. Unref after usage.
Since the core holds an additional ref to the returned caps,
use gst_caps_make_writable() on the returned caps to modify it.
</return>
</function>

<function name="gst_static_pad_template_get">
<description>
Converts a #GstStaticPadTemplate into a #GstPadTemplate.


</description>
<parameters>
<parameter name="pad_template">
<parameter_description> the static pad template
</parameter_description>
</parameter>
</parameters>
<return> a new #GstPadTemplate.
</return>
</function>

<function name="gst_static_pad_template_get_caps">
<description>
Gets the capabilities of the static pad template.


</description>
<parameters>
<parameter name="templ">
<parameter_description> a #GstStaticPadTemplate to get capabilities of.
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps of the static pad template.
Unref after usage. Since the core holds an additional
ref to the returned caps, use gst_caps_make_writable()
on the returned caps to modify it.
</return>
</function>

<function name="gst_stream_volume_convert_volume">
<description>

</description>
<parameters>
<parameter name="from">
<parameter_description> #GstStreamVolumeFormat to convert from
</parameter_description>
</parameter>
<parameter name="to">
<parameter_description> #GstStreamVolumeFormat to convert to
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Volume in @from format that should be converted
</parameter_description>
</parameter>
</parameters>
<return> the converted volume
</return>
</function>

<function name="gst_stream_volume_get_mute">
<description>

</description>
<parameters>
<parameter name="volume">
<parameter_description> #GstStreamVolume that should be used
</parameter_description>
</parameter>
</parameters>
<return> Returns %TRUE if the stream is muted
</return>
</function>

<function name="gst_stream_volume_get_volume">
<description>

</description>
<parameters>
<parameter name="volume">
<parameter_description> #GstStreamVolume that should be used
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> #GstStreamVolumeFormat which should be returned
</parameter_description>
</parameter>
</parameters>
<return> The current stream volume as linear factor
</return>
</function>

<function name="gst_stream_volume_set_mute">
<description>

</description>
<parameters>
<parameter name="volume">
<parameter_description> #GstStreamVolume that should be used
</parameter_description>
</parameter>
<parameter name="mute">
<parameter_description> Mute state that should be set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_stream_volume_set_volume">
<description>

</description>
<parameters>
<parameter name="volume">
<parameter_description> #GstStreamVolume that should be used
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> #GstStreamVolumeFormat of @val
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> Linear volume factor that should be set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_can_intersect">
<description>
Tries intersecting @struct1 and @struct2 and reports whether the result
would not be empty.


</description>
<parameters>
<parameter name="struct1">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="struct2">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if intersection would not be empty
</return>
</function>

<function name="gst_structure_copy">
<description>
Duplicates a #GstStructure and all its fields and values.

Free-function: gst_structure_free


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure to duplicate
</parameter_description>
</parameter>
</parameters>
<return> a new #GstStructure.
</return>
</function>

<function name="gst_structure_fixate">
<description>
Fixate all values in @structure using gst_value_fixate().
@structure will be modified in-place and should be writable.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_fixate_field">
<description>
Fixates a #GstStructure by changing the given field with its fixated value.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field in @structure
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure field could be fixated
</return>
</function>

<function name="gst_structure_fixate_field_boolean">
<description>
Fixates a #GstStructure by changing the given @field_name field to the given
@target boolean if that field is not fixed yet.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field in @structure
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the target value of the fixation
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure could be fixated
</return>
</function>

<function name="gst_structure_fixate_field_nearest_double">
<description>
Fixates a #GstStructure by changing the given field to the nearest
double to @target that is a subset of the existing field.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field in @structure
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the target value of the fixation
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure could be fixated
</return>
</function>

<function name="gst_structure_fixate_field_nearest_fraction">
<description>
Fixates a #GstStructure by changing the given field to the nearest
fraction to @target_numerator/@target_denominator that is a subset
of the existing field.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field in @structure
</parameter_description>
</parameter>
<parameter name="target_numerator">
<parameter_description> The numerator of the target value of the fixation
</parameter_description>
</parameter>
<parameter name="target_denominator">
<parameter_description> The denominator of the target value of the fixation
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure could be fixated
</return>
</function>

<function name="gst_structure_fixate_field_nearest_int">
<description>
Fixates a #GstStructure by changing the given field to the nearest
integer to @target that is a subset of the existing field.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field in @structure
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the target value of the fixation
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure could be fixated
</return>
</function>

<function name="gst_structure_fixate_field_string">
<description>
Fixates a #GstStructure by changing the given @field_name field to the given
@target string if that field is not fixed yet.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field in @structure
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the target value of the fixation
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure could be fixated
</return>
</function>

<function name="gst_structure_foreach">
<description>
Calls the provided function once for each field in the #GstStructure. The
function must not modify the fields. Also see gst_structure_map_in_place().


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a function to call for each field
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> private data
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the supplied function returns TRUE For each of the fields,
FALSE otherwise.
</return>
</function>

<function name="gst_structure_free">
<description>
Frees a #GstStructure and all its fields and values. The structure must not
have a parent when this function is called.

</description>
<parameters>
<parameter name="structure">
<parameter_description> the #GstStructure to free
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_from_string">
<description>
Creates a #GstStructure from a string representation.
If end is not NULL, a pointer to the place inside the given string
where parsing ended will be returned.

Free-function: gst_structure_free


</description>
<parameters>
<parameter name="string">
<parameter_description> a string representation of a #GstStructure.
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> pointer to store the end of the string in.
</parameter_description>
</parameter>
</parameters>
<return> a new #GstStructure or NULL when the string could
not be parsed. Free with gst_structure_free() after use.
</return>
</function>

<function name="gst_structure_get">
<description>
Parses the variable arguments and reads fields from @structure accordingly.
Variable arguments should be in the form field name, field type
(as a GType), pointer(s) to a variable(s) to hold the return value(s).
The last variable argument should be NULL.

For refcounted (mini)objects you will receive a new reference which
you must release with a suitable _unref() when no longer needed. For
strings and boxed types you will receive a copy which you will need to
release with either g_free() or the suitable function for the boxed type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="first_fieldname">
<parameter_description> the name of the first field to read
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return> FALSE if there was a problem reading any of the fields (e.g.
because the field requested did not exist, or was of a type other
than the type specified), otherwise TRUE.
</return>
</function>

<function name="gst_structure_get_boolean">
<description>
Sets the boolean pointed to by @value corresponding to the value of the
given field.  Caller is responsible for making sure the field exists
and has the correct type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to a #gboolean to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain a boolean, this
function returns FALSE.
</return>
</function>

<function name="gst_structure_get_clock_time">
<description>
Sets the clock time pointed to by @value corresponding to the clock time
of the given field.  Caller is responsible for making sure the field exists
and has the correct type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to a #GstClockTime to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain a #GstClockTime, this
function returns FALSE.
</return>
</function>

<function name="gst_structure_get_date">
<description>
Sets the date pointed to by @value corresponding to the date of the
given field.  Caller is responsible for making sure the field exists
and has the correct type.

On success @value will point to a newly-allocated copy of the date which
should be freed with g_date_free() when no longer needed (note: this is
inconsistent with e.g. gst_structure_get_string() which doesn't return a
copy of the string).


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to a #GDate to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain a data, this function
returns FALSE.
</return>
</function>

<function name="gst_structure_get_date_time">
<description>
Sets the datetime pointed to by @value corresponding to the datetime of the
given field. Caller is responsible for making sure the field exists
and has the correct type.

On success @value will point to a reference of the datetime which
should be unreffed with gst_date_time_unref() when no longer needed
(note: this is inconsistent with e.g. gst_structure_get_string()
which doesn't return a copy of the string).


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to a #GstDateTime to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain a data, this function
returns FALSE.
</return>
</function>

<function name="gst_structure_get_double">
<description>
Sets the double pointed to by @value corresponding to the value of the
given field.  Caller is responsible for making sure the field exists
and has the correct type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to a gdouble to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain a double, this
function returns FALSE.
</return>
</function>

<function name="gst_structure_get_enum">
<description>
Sets the int pointed to by @value corresponding to the value of the
given field.  Caller is responsible for making sure the field exists,
has the correct type and that the enumtype is correct.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="enumtype">
<parameter_description> the enum type of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to an int to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain an enum of the given
type, this function returns FALSE.
</return>
</function>

<function name="gst_structure_get_field_type">
<description>
Finds the field with the given name, and returns the type of the
value it contains.  If the field is not found, G_TYPE_INVALID is
returned.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field
</parameter_description>
</parameter>
</parameters>
<return> the #GValue of the field
</return>
</function>

<function name="gst_structure_get_fraction">
<description>
Sets the integers pointed to by @value_numerator and @value_denominator
corresponding to the value of the given field.  Caller is responsible
for making sure the field exists and has the correct type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value_numerator">
<parameter_description> a pointer to an int to set
</parameter_description>
</parameter>
<parameter name="value_denominator">
<parameter_description> a pointer to an int to set
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the values could be set correctly. If there was no field
with @fieldname or the existing field did not contain a GstFraction, this
function returns FALSE.
</return>
</function>

<function name="gst_structure_get_int">
<description>
Sets the int pointed to by @value corresponding to the value of the
given field.  Caller is responsible for making sure the field exists
and has the correct type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to an int to set
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain an int, this function
returns %FALSE.
</return>
</function>

<function name="gst_structure_get_name">
<description>
Get the name of @structure as a string.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> the name of the structure.
</return>
</function>

<function name="gst_structure_get_name_id">
<description>
Get the name of @structure as a GQuark.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> the quark representing the name of the structure.
</return>
</function>

<function name="gst_structure_get_string">
<description>
Finds the field corresponding to @fieldname, and returns the string
contained in the field's value.  Caller is responsible for making
sure the field exists and has the correct type.

The string should not be modified, and remains valid until the next
call to a gst_structure_*() function with the given structure.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the string or NULL when the field did not exist
or did not contain a string.
</return>
</function>

<function name="gst_structure_get_uint">
<description>
Sets the uint pointed to by @value corresponding to the value of the
given field.  Caller is responsible for making sure the field exists
and has the correct type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a pointer to a uint to set
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value could be set correctly. If there was no field
with @fieldname or the existing field did not contain a uint, this function
returns %FALSE.
</return>
</function>

<function name="gst_structure_get_valist">
<description>
Parses the variable arguments and reads fields from @structure accordingly.
valist-variant of gst_structure_get(). Look at the documentation of
gst_structure_get() for more details.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="first_fieldname">
<parameter_description> the name of the first field to read
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return> TRUE, or FALSE if there was a problem reading any of the fields
</return>
</function>

<function name="gst_structure_get_value">
<description>
Get the value of the field with name @fieldname.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to get
</parameter_description>
</parameter>
</parameters>
<return> the #GValue corresponding to the field with the given name.
</return>
</function>

<function name="gst_structure_has_field">
<description>
Check if @structure contains a field named @fieldname.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure contains a field with the given name
</return>
</function>

<function name="gst_structure_has_field_typed">
<description>
Check if @structure contains a field named @fieldname and with GType @type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of a field
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of a value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure contains a field with the given name and type
</return>
</function>

<function name="gst_structure_has_name">
<description>
Checks if the structure has the given name


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> structure name to check for
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @name matches the name of the structure.
</return>
</function>

<function name="gst_structure_id_get">
<description>
Parses the variable arguments and reads fields from @structure accordingly.
Variable arguments should be in the form field id quark, field type
(as a GType), pointer(s) to a variable(s) to hold the return value(s).
The last variable argument should be NULL (technically it should be a
0 quark, but we require NULL so compilers that support it can check for
the NULL terminator and warn if it's not there).

This function is just like gst_structure_get() only that it is slightly
more efficient since it saves the string-to-quark lookup in the global
quark hashtable.

For refcounted (mini)objects you will receive a new reference which
you must release with a suitable _unref() when no longer needed. For
strings and boxed types you will receive a copy which you will need to
release with either g_free() or the suitable function for the boxed type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="first_field_id">
<parameter_description> the quark of the first field to read
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return> FALSE if there was a problem reading any of the fields (e.g.
because the field requested did not exist, or was of a type other
than the type specified), otherwise TRUE.
</return>
</function>

<function name="gst_structure_id_get_valist">
<description>
Parses the variable arguments and reads fields from @structure accordingly.
valist-variant of gst_structure_id_get(). Look at the documentation of
gst_structure_id_get() for more details.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="first_field_id">
<parameter_description> the quark of the first field to read
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return> TRUE, or FALSE if there was a problem reading any of the fields
</return>
</function>

<function name="gst_structure_id_get_value">
<description>
Get the value of the field with GQuark @field.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> the #GQuark of the field to get
</parameter_description>
</parameter>
</parameters>
<return> the #GValue corresponding to the field with the given name
identifier.
</return>
</function>

<function name="gst_structure_id_has_field">
<description>
Check if @structure contains a field named @field.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> #GQuark of the field name
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure contains a field with the given name
</return>
</function>

<function name="gst_structure_id_has_field_typed">
<description>
Check if @structure contains a field named @field and with GType @type.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> #GQuark of the field name
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of a value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the structure contains a field with the given name and type
</return>
</function>

<function name="gst_structure_id_set">
<description>
Identical to gst_structure_set, except that field names are
passed using the GQuark for the field name. This allows more efficient
setting of the structure if the caller already knows the associated
quark values.
The last variable argument must be NULL.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the GQuark for the name of the field to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_id_set_valist">
<description>
va_list form of gst_structure_id_set().

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to set
</parameter_description>
</parameter>
<parameter name="varargs">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_id_set_value">
<description>
Sets the field with the given GQuark @field to @value.  If the field
does not exist, it is created.  If the field exists, the previous
value is replaced and freed.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> a #GQuark representing a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value of the field
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_id_take_value">
<description>
Sets the field with the given GQuark @field to @value.  If the field
does not exist, it is created.  If the field exists, the previous
value is replaced and freed.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="field">
<parameter_description> a #GQuark representing a field
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value of the field
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_intersect">
<description>
Interesects @struct1 and @struct2 and returns the intersection.


</description>
<parameters>
<parameter name="struct1">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="struct2">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> Intersection of @struct1 and @struct2
</return>
</function>

<function name="gst_structure_is_equal">
<description>
Tests if the two #GstStructure are equal.


</description>
<parameters>
<parameter name="structure1">
<parameter_description> a #GstStructure.
</parameter_description>
</parameter>
<parameter name="structure2">
<parameter_description> a #GstStructure.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the two structures have the same name and field.
</return>
</function>

<function name="gst_structure_is_subset">
<description>
Checks if @subset is a subset of @superset, i.e. has the same
structure name and for all fields that are existing in @superset,
@subset has a value that is a subset of the value in @superset.


</description>
<parameters>
<parameter name="subset">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="superset">
<parameter_description> a potentially greater #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @subset is a subset of @superset
</return>
</function>

<function name="gst_structure_map_in_place">
<description>
Calls the provided function once for each field in the #GstStructure. In
contrast to gst_structure_foreach(), the function may modify but not delete the
fields. The structure must be mutable.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a function to call for each field
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> private data
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the supplied function returns TRUE For each of the fields,
FALSE otherwise.
</return>
</function>

<function name="gst_structure_n_fields">
<description>
Get the number of fields in the structure.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> the number of fields in the structure
</return>
</function>

<function name="gst_structure_new">
<description>
Creates a new #GstStructure with the given name.  Parses the
list of variable arguments and sets fields to the values listed.
Variable arguments should be passed as field name, field type,
and value.  Last variable argument should be NULL.

Free-function: gst_structure_free


</description>
<parameters>
<parameter name="name">
<parameter_description> name of new structure
</parameter_description>
</parameter>
<parameter name="firstfield">
<parameter_description> name of first field to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional arguments
</parameter_description>
</parameter>
</parameters>
<return> a new #GstStructure
</return>
</function>

<function name="gst_structure_new_empty">
<description>
Creates a new, empty #GstStructure with the given @name.

See gst_structure_set_name() for constraints on the @name parameter.

Free-function: gst_structure_free


</description>
<parameters>
<parameter name="name">
<parameter_description> name of new structure
</parameter_description>
</parameter>
</parameters>
<return> a new, empty #GstStructure
</return>
</function>

<function name="gst_structure_new_id">
<description>
Creates a new #GstStructure with the given name as a GQuark, followed by
fieldname quark, GType, argument(s) &quot;triplets&quot; in the same format as
gst_structure_id_set(). Basically a convenience wrapper around
gst_structure_new_id_empty() and gst_structure_id_set().

The last variable argument must be NULL (or 0).

Free-function: gst_structure_free


</description>
<parameters>
<parameter name="name_quark">
<parameter_description> name of new structure
</parameter_description>
</parameter>
<parameter name="field_quark">
<parameter_description> the GQuark for the name of the field to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return> a new #GstStructure
</return>
</function>

<function name="gst_structure_new_id_empty">
<description>
Creates a new, empty #GstStructure with the given name as a GQuark.

Free-function: gst_structure_free


</description>
<parameters>
<parameter name="quark">
<parameter_description> name of new structure
</parameter_description>
</parameter>
</parameters>
<return> a new, empty #GstStructure
</return>
</function>

<function name="gst_structure_new_valist">
<description>
Creates a new #GstStructure with the given @name.  Structure fields
are set according to the varargs in a manner similar to
gst_structure_new().

See gst_structure_set_name() for constraints on the @name parameter.

Free-function: gst_structure_free


</description>
<parameters>
<parameter name="name">
<parameter_description> name of new structure
</parameter_description>
</parameter>
<parameter name="firstfield">
<parameter_description> name of first field to set
</parameter_description>
</parameter>
<parameter name="varargs">
<parameter_description> variable argument list
</parameter_description>
</parameter>
</parameters>
<return> a new #GstStructure
</return>
</function>

<function name="gst_structure_nth_field_name">
<description>
Get the name of the given field number, counting from 0 onwards.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the index to get the name of
</parameter_description>
</parameter>
</parameters>
<return> the name of the given field number
</return>
</function>

<function name="gst_structure_remove_all_fields">
<description>
Removes all fields in a GstStructure.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_remove_field">
<description>
Removes the field with the given name.  If the field with the given
name does not exist, the structure is unchanged.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_remove_fields">
<description>
Removes the fields with the given names. If a field does not exist, the
argument is ignored.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to remove
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> NULL-terminated list of more fieldnames to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_remove_fields_valist">
<description>
va_list form of gst_structure_remove_fields().

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to remove
</parameter_description>
</parameter>
<parameter name="varargs">
<parameter_description> NULL-terminated list of more fieldnames to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_set">
<description>
Parses the variable arguments and sets fields accordingly.
Variable arguments should be in the form field name, field type
(as a GType), value(s).  The last variable argument should be NULL.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_set_name">
<description>
Sets the name of the structure to the given @name.  The string
provided is copied before being used. It must not be empty, start with a
letter and can be followed by letters, numbers and any of &quot;/-_.:&quot;.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the new name of the structure
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_set_parent_refcount">
<description>
Sets the parent_refcount field of #GstStructure. This field is used to
determine whether a structure is mutable or not. This function should only be
called by code implementing parent objects of #GstStructure, as described in
the MT Refcounting section of the design documents.


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="refcount">
<parameter_description> a pointer to the parent's refcount
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the parent refcount could be set.
</return>
</function>

<function name="gst_structure_set_valist">
<description>
va_list form of gst_structure_set().

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to set
</parameter_description>
</parameter>
<parameter name="varargs">
<parameter_description> variable arguments
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_set_value">
<description>
Sets the field with the given name @field to @value.  If the field
does not exist, it is created.  If the field exists, the previous
value is replaced and freed.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value of the field
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_take_value">
<description>
Sets the field with the given name @field to @value.  If the field
does not exist, it is created.  If the field exists, the previous
value is replaced and freed. The function will take ownership of @value.

</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> the name of the field to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value of the field
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_structure_to_string">
<description>
Converts @structure to a human-readable string representation.

For debugging purposes its easier to do something like this:
|[
GST_LOG (&quot;structure is %&quot; GST_PTR_FORMAT, structure);
]|
This prints the structure in human readble form.

Free-function: g_free


</description>
<parameters>
<parameter name="structure">
<parameter_description> a #GstStructure
</parameter_description>
</parameter>
</parameters>
<return> a pointer to string allocated by g_malloc().
g_free() after usage.
</return>
</function>

<function name="gst_system_clock_obtain">
<description>
Get a handle to the default system clock. The refcount of the
clock will be increased so you need to unref the clock after
usage.


</description>
<parameters>
</parameters>
<return> the default clock.

MT safe.
</return>
</function>

<function name="gst_tag_check_language_code">
<description>
Check if a given string contains a known ISO 639 language code.

This is useful in situations where it's not clear whether a given
string is a language code (which should be put into a #GST_TAG_LANGUAGE_CODE
tag) or a free-form language name descriptor (which should be put into a
#GST_TAG_LANGUAGE_NAME tag instead).


</description>
<parameters>
<parameter name="lang_code">
<parameter_description> ISO-639 language code (e.g. &quot;deu&quot; or &quot;ger&quot; or &quot;de&quot;)
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the two- or three-letter language code in @lang_code
is a valid ISO-639 language code.
</return>
</function>

<function name="gst_tag_exists">
<description>
Checks if the given type is already registered.


</description>
<parameters>
<parameter name="tag">
<parameter_description> name of the tag
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the type is already registered
</return>
</function>

<function name="gst_tag_freeform_string_to_utf8">
<description>
Convenience function to read a string with unknown character encoding. If
the string is already in UTF-8 encoding, it will be returned right away.
If not it tries to detect byte-order-mark for UTF-16/32 cases and use that.
Otherwise, the environment will be searched for a number of environment
variables (whose names are specified in the NULL-terminated string array
@env_vars) containing a list of character encodings to try/use. If none
are specified, the current locale will be tried. If that also doesn't work,
WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).


</description>
<parameters>
<parameter name="data">
<parameter_description> string data
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> length of string data, or -1 if the string is NUL-terminated
</parameter_description>
</parameter>
<parameter name="env_vars">
<parameter_description> a NULL-terminated string array of environment variable names,
or NULL
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated string in UTF-8 encoding, or NULL
</return>
</function>

<function name="gst_tag_from_id3_tag">
<description>
Looks up the GStreamer tag for a ID3v2 tag.


</description>
<parameters>
<parameter name="id3_tag">
<parameter_description> ID3v2 tag to convert to GStreamer tag
</parameter_description>
</parameter>
</parameters>
<return> The corresponding GStreamer tag or NULL if none exists.
</return>
</function>

<function name="gst_tag_from_id3_user_tag">
<description>
Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
TXXX frame or owner in UFID frame).


</description>
<parameters>
<parameter name="type">
<parameter_description> the type of ID3v2 user tag (e.g. &quot;TXXX&quot; or &quot;UDIF&quot;)
</parameter_description>
</parameter>
<parameter name="id3_user_tag">
<parameter_description> ID3v2 user tag to convert to GStreamer tag
</parameter_description>
</parameter>
</parameters>
<return> The corresponding GStreamer tag or NULL if none exists.
</return>
</function>

<function name="gst_tag_from_vorbis_tag">
<description>
Looks up the GStreamer tag for a vorbiscomment tag.


</description>
<parameters>
<parameter name="vorbis_tag">
<parameter_description> vorbiscomment tag to convert to GStreamer tag
</parameter_description>
</parameter>
</parameters>
<return> The corresponding GStreamer tag or NULL if none exists.
</return>
</function>

<function name="gst_tag_get_description">
<description>
Returns the human-readable description of this tag, You must not change or
free this string.


</description>
<parameters>
<parameter name="tag">
<parameter_description> the tag
</parameter_description>
</parameter>
</parameters>
<return> the human-readable description of this tag
</return>
</function>

<function name="gst_tag_get_flag">
<description>
Gets the flag of @tag.


</description>
<parameters>
<parameter name="tag">
<parameter_description> the tag
</parameter_description>
</parameter>
</parameters>
<return> the flag of this tag.
</return>
</function>

<function name="gst_tag_get_id3v2_tag_size">
<description>
Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
i.e. at least #GST_TAG_ID3V2_HEADER_SIZE (10) bytes;


</description>
<parameters>
<parameter name="buffer">
<parameter_description> buffer holding ID3v2 tag (or at least the start of one)
</parameter_description>
</parameter>
</parameters>
<return> Size of tag, or 0 if header is invalid or too small.
</return>
</function>

<function name="gst_tag_get_language_code">
<description>
Convenience macro wrapping gst_tag_get_language_code_iso_639_1().

</description>
<parameters>
<parameter name="lang_code">
<parameter_description> ISO-639 language code (e.g. &quot;deu&quot; or &quot;ger&quot; or &quot;de&quot;)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_get_language_code_iso_639_1">
<description>
Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2
language code or two-letter ISO-639-1 language code (both are accepted for
convenience).

Language codes are case-sensitive and expected to be lower case.


</description>
<parameters>
<parameter name="lang_code">
<parameter_description> ISO-639 language code (e.g. &quot;deu&quot; or &quot;ger&quot; or &quot;de&quot;)
</parameter_description>
</parameter>
</parameters>
<return> two-letter ISO-639-1 language code string that maps to @lang_code,
or NULL if no mapping is known. The returned string must not be
modified or freed.
</return>
</function>

<function name="gst_tag_get_language_code_iso_639_2B">
<description>
Returns three-letter ISO-639-2 &quot;bibliographic&quot; language code given a
two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
code (both are accepted for convenience).

The &quot;bibliographic&quot; code is derived from the English name of the language
(e.g. &quot;ger&quot; for German instead of &quot;de&quot; or &quot;deu&quot;). In most scenarios, the
&quot;terminological&quot; codes are prefered.

Language codes are case-sensitive and expected to be lower case.


</description>
<parameters>
<parameter name="lang_code">
<parameter_description> ISO-639 language code (e.g. &quot;deu&quot; or &quot;ger&quot; or &quot;de&quot;)
</parameter_description>
</parameter>
</parameters>
<return> three-letter ISO-639-2 language code string that maps to @lang_code,
or NULL if no mapping is known. The returned string must not be
modified or freed.
</return>
</function>

<function name="gst_tag_get_language_code_iso_639_2T">
<description>
Returns three-letter ISO-639-2 &quot;terminological&quot; language code given a
two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
code (both are accepted for convenience).

The &quot;terminological&quot; code is derived from the local name of the language
(e.g. &quot;deu&quot; for German instead of &quot;ger&quot;). In most scenarios, the
&quot;terminological&quot; codes are prefered over the &quot;bibliographic&quot; ones.

Language codes are case-sensitive and expected to be lower case.


</description>
<parameters>
<parameter name="lang_code">
<parameter_description> ISO-639 language code (e.g. &quot;deu&quot; or &quot;ger&quot; or &quot;de&quot;)
</parameter_description>
</parameter>
</parameters>
<return> three-letter ISO-639-2 language code string that maps to @lang_code,
or NULL if no mapping is known. The returned string must not be
modified or freed.
</return>
</function>

<function name="gst_tag_get_language_codes">
<description>
Returns a list of known language codes (in form of two-letter ISO-639-1
codes). This is useful for UIs to build a list of available languages for
tagging purposes (e.g. to tag an audio track appropriately in a video or
audio editor).


</description>
<parameters>
</parameters>
<return> NULL-terminated string array with two-letter
language codes. Free with g_strfreev() when no longer needed.
</return>
</function>

<function name="gst_tag_get_language_name">
<description>
Returns the name of the language given an ISO-639 language code as
found in a GST_TAG_LANGUAGE_CODE tag. The name will be translated
according to the current locale (if the library was built against the
iso-codes package, otherwise the English name will be returned).

Language codes are case-sensitive and expected to be lower case.


</description>
<parameters>
<parameter name="language_code">
<parameter_description> two or three-letter ISO-639 language code
</parameter_description>
</parameter>
</parameters>
<return> language name in UTF-8 format, or NULL if @language_code could
not be mapped to a language name. The returned string must not be
modified and does not need to freed; it will stay valid until the
application is terminated.
</return>
</function>

<function name="gst_tag_get_license_description">
<description>
Get the description of a license, which is a translated description
of the license's main features.


</description>
<parameters>
<parameter name="license_ref">
<parameter_description> a license reference string in form of a URI,
e.g. &quot;http://creativecommons.org/licenses/by-nc-nd/2.0/&quot;
</parameter_description>
</parameter>
</parameters>
<return> the description of the license, or NULL if the license is unknown
or a description is not available.
</return>
</function>

<function name="gst_tag_get_license_flags">
<description>
Get the flags of a license, which describe most of the features of
a license in their most general form.


</description>
<parameters>
<parameter name="license_ref">
<parameter_description> a license reference string in form of a URI,
e.g. &quot;http://creativecommons.org/licenses/by-nc-nd/2.0/&quot;
</parameter_description>
</parameter>
</parameters>
<return> the flags of the license, or 0 if the license is unknown
</return>
</function>

<function name="gst_tag_get_license_jurisdiction">
<description>
Get the jurisdiction code of a license. This is usually a two-letter
ISO 3166-1 alpha-2 code, but there is also the special case of Scotland,
for which no code exists and which is thus represented as &quot;scotland&quot;.

Known jurisdictions: ar, at, au, be, bg, br, ca, ch, cl, cn, co, de,
dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
pt, scotland, se, si, tw, uk, us, za.


</description>
<parameters>
<parameter name="license_ref">
<parameter_description> a license reference string in form of a URI,
e.g. &quot;http://creativecommons.org/licenses/by-nc-nd/2.0/&quot;
</parameter_description>
</parameter>
</parameters>
<return> the jurisdiction code of the license, or NULL if the license is
unknown or is not specific to a particular jurisdiction.
</return>
</function>

<function name="gst_tag_get_license_nick">
<description>
Get the nick name of a license, which is a short (untranslated) string
such as e.g. &quot;CC BY-NC-ND 2.0 UK&quot;.


</description>
<parameters>
<parameter name="license_ref">
<parameter_description> a license reference string in form of a URI,
e.g. &quot;http://creativecommons.org/licenses/by-nc-nd/2.0/&quot;
</parameter_description>
</parameter>
</parameters>
<return> the nick name of the license, or NULL if the license is unknown
</return>
</function>

<function name="gst_tag_get_license_title">
<description>
Get the title of a license, which is a short translated description
of the license's features (generally not very pretty though).


</description>
<parameters>
<parameter name="license_ref">
<parameter_description> a license reference string in form of a URI,
e.g. &quot;http://creativecommons.org/licenses/by-nc-nd/2.0/&quot;
</parameter_description>
</parameter>
</parameters>
<return> the title of the license, or NULL if the license is unknown or
no title is available.
</return>
</function>

<function name="gst_tag_get_license_version">
<description>
Get the version of a license.


</description>
<parameters>
<parameter name="license_ref">
<parameter_description> a license reference string in form of a URI,
e.g. &quot;http://creativecommons.org/licenses/by-nc-nd/2.0/&quot;
</parameter_description>
</parameter>
</parameters>
<return> the version of the license, or NULL if the license is not known or
has no version
</return>
</function>

<function name="gst_tag_get_licenses">
<description>
Returns a list of known license references (in form of URIs). This is
useful for UIs to build a list of available licenses for tagging purposes
(e.g. to tag an audio track appropriately in a video or audio editor, or
an image in a camera application).


</description>
<parameters>
</parameters>
<return> NULL-terminated array of license strings. Free
with g_strfreev() when no longer needed.
</return>
</function>

<function name="gst_tag_get_nick">
<description>
Returns the human-readable name of this tag, You must not change or free
this string.


</description>
<parameters>
<parameter name="tag">
<parameter_description> the tag
</parameter_description>
</parameter>
</parameters>
<return> the human-readable name of this tag
</return>
</function>

<function name="gst_tag_get_type">
<description>
Gets the #GType used for this tag.


</description>
<parameters>
<parameter name="tag">
<parameter_description> the tag
</parameter_description>
</parameter>
</parameters>
<return> the #GType of this tag
</return>
</function>

<function name="gst_tag_id3_genre_count">
<description>
Gets the number of ID3v1 genres that can be identified. Winamp genres are 
included.


</description>
<parameters>
</parameters>
<return> the number of ID3v1 genres that can be identified
</return>
</function>

<function name="gst_tag_id3_genre_get">
<description>
Gets the ID3v1 genre name for a given ID.


</description>
<parameters>
<parameter name="id">
<parameter_description> ID of genre to query
</parameter_description>
</parameter>
</parameters>
<return> the genre or NULL if no genre is associated with that ID.
</return>
</function>

<function name="gst_tag_image_data_to_image_sample">
<description>
Helper function for tag-reading plugins to create a #GstSample suitable to
add to a #GstTagList as an image tag (such as #GST_TAG_IMAGE or
#GST_TAG_PREVIEW_IMAGE) from the encoded image data and an (optional) image
type.

Background: cover art and other images in tags are usually stored as a
blob of binary image data, often accompanied by a MIME type or some other
content type string (e.g. 'png', 'jpeg', 'jpg'). Sometimes there is also an
'image type' to indicate what kind of image this is (e.g. front cover,
back cover, artist, etc.). The image data may also be an URI to the image
rather than the image itself.

In GStreamer, image tags are #GstSample&lt;!-- --&gt;s containing the raw image
data, with the sample caps describing the content type of the image
(e.g. image/jpeg, image/png, text/uri-list). The sample info may contain
an additional 'image-type' field of #GST_TYPE_TAG_IMAGE_TYPE to describe
the type of image (front cover, back cover etc.). #GST_TAG_PREVIEW_IMAGE
tags should not carry an image type, their type is already indicated via
the special tag name.

This function will do various checks and typefind the encoded image
data (we can't trust the declared mime type).


</description>
<parameters>
<parameter name="image_data">
<parameter_description> the (encoded) image
</parameter_description>
</parameter>
<parameter name="image_data_len">
<parameter_description> the length of the encoded image data at @image_data
</parameter_description>
</parameter>
<parameter name="image_type">
<parameter_description> type of the image, or #GST_TAG_IMAGE_TYPE_UNDEFINED. Pass
#GST_TAG_IMAGE_TYPE_NONE if no image type should be set at all (e.g.
for preview images)
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated image sample for use in tag lists, or NULL
</return>
</function>

<function name="gst_tag_is_fixed">
<description>
Checks if the given tag is fixed. A fixed tag can only contain one value.
Unfixed tags can contain lists of values.


</description>
<parameters>
<parameter name="tag">
<parameter_description> tag to check
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if the given tag is fixed.
</return>
</function>

<function name="gst_tag_list_add">
<description>
Sets the values for the given tags using the specified mode.

</description>
<parameters>
<parameter name="list">
<parameter_description> list to set tags in
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> NULL-terminated list of values to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_add_id3_image">
<description>
Adds an image from an ID3 APIC frame (or similar, such as used in FLAC)
to the given tag list. Also see gst_tag_image_data_to_image_sample() for
more information on image tags in GStreamer.


</description>
<parameters>
<parameter name="tag_list">
<parameter_description> a tag list
</parameter_description>
</parameter>
<parameter name="image_data">
<parameter_description> the (encoded) image
</parameter_description>
</parameter>
<parameter name="image_data_len">
<parameter_description> the length of the encoded image data at @image_data
</parameter_description>
</parameter>
<parameter name="id3_picture_type">
<parameter_description> picture type as per the ID3 (v2.4.0) specification for
the APIC frame (0 = unknown/other)
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the image was processed, otherwise %FALSE
</return>
</function>

<function name="gst_tag_list_add_valist">
<description>
Sets the values for the given tags using the specified mode.

</description>
<parameters>
<parameter name="list">
<parameter_description> list to set tags in
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> tag / value pairs to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_add_valist_values">
<description>
Sets the GValues for the given tags using the specified mode.

</description>
<parameters>
<parameter name="list">
<parameter_description> list to set tags in
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> tag / GValue pairs to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_add_value">
<description>
Sets the GValue for a given tag using the specified mode.

</description>
<parameters>
<parameter name="list">
<parameter_description> list to set tags in
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> GValue for this tag
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_add_values">
<description>
Sets the GValues for the given tags using the specified mode.

</description>
<parameters>
<parameter name="list">
<parameter_description> list to set tags in
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> GValues to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_copy">
<description>
Creates a new #GstTagList as a copy of the old @taglist. The new taglist
will have a refcount of 1, owned by the caller, and will be writable as
a result.

Note that this function is the semantic equivalent of a gst_tag_list_ref()
followed by a gst_tag_list_make_writable(). If you only want to hold on to a
reference to the data, you should use gst_tag_list_ref().

When you are finished with the taglist, call gst_tag_list_unref() on it.


</description>
<parameters>
<parameter name="taglist">
<parameter_description> a #GstTagList.
</parameter_description>
</parameter>
</parameters>
<return> the new #GstTagList
</return>
</function>

<function name="gst_tag_list_copy_value">
<description>
Copies the contents for the given tag into the value,
merging multiple values into one if multiple values are associated
with the tag.
You must g_value_unset() the value after use.


</description>
<parameters>
<parameter name="dest">
<parameter_description> uninitialized #GValue to copy into
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> list to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_foreach">
<description>
Calls the given function for each tag inside the tag list. Note that if there
is no tag, the function won't be called at all.

</description>
<parameters>
<parameter name="list">
<parameter_description> list to iterate over
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> function to be called for each tag
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user specified data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_from_exif_buffer">
<description>
Parses the IFD and IFD tags data contained in the buffer and puts it
on a taglist. The base_offset is used to subtract from the offset in
the tag entries and be able to get the offset relative to the buffer
start


</description>
<parameters>
<parameter name="buffer">
<parameter_description> The exif buffer
</parameter_description>
</parameter>
<parameter name="byte_order">
<parameter_description> byte order of the data
</parameter_description>
</parameter>
<parameter name="base_offset">
<parameter_description> Offset from the tiff header to this buffer
</parameter_description>
</parameter>
</parameters>
<return> The parsed taglist
</return>
</function>

<function name="gst_tag_list_from_exif_buffer_with_tiff_header">
<description>
Parses the exif tags starting with a tiff header structure.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> The exif buffer
</parameter_description>
</parameter>
</parameters>
<return> The taglist
</return>
</function>

<function name="gst_tag_list_from_id3v2_tag">
<description>
Creates a new tag list that contains the information parsed out of a
ID3 tag.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> buffer to convert
</parameter_description>
</parameter>
</parameters>
<return> A new #GstTagList with all tags that could be extracted from the
given vorbiscomment buffer or NULL on error.
</return>
</function>

<function name="gst_tag_list_from_vorbiscomment">
<description>
Creates a new tag list that contains the information parsed out of a
vorbiscomment packet.


</description>
<parameters>
<parameter name="data">
<parameter_description> data to convert
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of @data
</parameter_description>
</parameter>
<parameter name="id_data">
<parameter_description> identification data at start of stream
</parameter_description>
</parameter>
<parameter name="id_data_length">
<parameter_description> length of identification data
</parameter_description>
</parameter>
<parameter name="vendor_string">
<parameter_description> pointer to a string that should take the vendor string
of this vorbis comment or NULL if you don't need it.
</parameter_description>
</parameter>
</parameters>
<return> A new #GstTagList with all tags that could be extracted from the
given vorbiscomment buffer or NULL on error.
</return>
</function>

<function name="gst_tag_list_from_vorbiscomment_buffer">
<description>
Creates a new tag list that contains the information parsed out of a
vorbiscomment packet.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> buffer to convert
</parameter_description>
</parameter>
<parameter name="id_data">
<parameter_description> identification data at start of stream
</parameter_description>
</parameter>
<parameter name="id_data_length">
<parameter_description> length of identification data
</parameter_description>
</parameter>
<parameter name="vendor_string">
<parameter_description> pointer to a string that should take the vendor string
of this vorbis comment or NULL if you don't need it.
</parameter_description>
</parameter>
</parameters>
<return> A new #GstTagList with all tags that could be extracted from the
given vorbiscomment buffer or NULL on error.
</return>
</function>

<function name="gst_tag_list_from_xmp_buffer">
<description>
Parse a xmp packet into a taglist.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> buffer
</parameter_description>
</parameter>
</parameters>
<return> new taglist or %NULL, free the list when done
</return>
</function>

<function name="gst_tag_list_get_boolean">
<description>
Copies the contents for the given tag into the value, merging multiple values
into one if multiple values are associated with the tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_boolean_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_date">
<description>
Copies the first date for the given tag in the taglist into the variable
pointed to by @value. Free the date with g_date_free() when it is no longer
needed.

Free-function: g_date_free


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> address of a GDate pointer
variable to store the result into
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a date was copied, FALSE if the tag didn't exist in the
given list or if it was #NULL.
</return>
</function>

<function name="gst_tag_list_get_date_index">
<description>
Gets the date that is at the given index for the given tag in the given
list and copies it into the variable pointed to by @value. Free the date
with g_date_free() when it is no longer needed.

Free-function: g_date_free


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list or if it was #NULL.
</return>
</function>

<function name="gst_tag_list_get_date_time">
<description>
Copies the first datetime for the given tag in the taglist into the variable
pointed to by @value. Unref the date with gst_date_time_unref() when
it is no longer needed.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> address of a #GstDateTime
pointer variable to store the result into
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a datetime was copied, FALSE if the tag didn't exist in
thegiven list or if it was #NULL.
</return>
</function>

<function name="gst_tag_list_get_date_time_index">
<description>
Gets the datetime that is at the given index for the given tag in the given
list and copies it into the variable pointed to by @value. Unref the datetime
with gst_date_time_unref() when it is no longer needed.

Free-function: gst_date_time_unref


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list or if it was #NULL.
</return>
</function>

<function name="gst_tag_list_get_double">
<description>
Copies the contents for the given tag into the value, merging multiple values
into one if multiple values are associated with the tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_double_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_float">
<description>
Copies the contents for the given tag into the value, merging multiple values
into one if multiple values are associated with the tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_float_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_int">
<description>
Copies the contents for the given tag into the value, merging multiple values
into one if multiple values are associated with the tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_int64_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_int_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_pointer">
<description>
Copies the contents for the given tag into the value, merging multiple values
into one if multiple values are associated with the tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_pointer_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_sample">
<description>
Copies the first sample for the given tag in the taglist into the variable
pointed to by @sample. Free the sample with gst_sample_unref() when it is
no longer needed. You can retrieve the buffer from the sample using
gst_sample_get_buffer() and the associated caps (if any) with
gst_sample_get_caps().

Free-function: gst_sample_unref


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="sample">
<parameter_description> address of a GstSample
pointer variable to store the result into
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a sample was returned, FALSE if the tag didn't exist in
the given list or if it was #NULL.
</return>
</function>

<function name="gst_tag_list_get_sample_index">
<description>
Gets the sample that is at the given index for the given tag in the given
list and copies it into the variable pointed to by @smple. Free the sample
with gst_sample_unref() when it is no longer needed. You can retrieve the
buffer from the sample using gst_sample_get_buffer() and the associated
caps (if any) with gst_sample_get_caps().

Free-function: gst_sample_unref


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="sample">
<parameter_description> address of a GstSample
pointer variable to store the result into
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a sample was copied, FALSE if the tag didn't exist in the
given list or if it was #NULL.
</return>
</function>

<function name="gst_tag_list_get_scope">
<description>
Gets the scope of @list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
</parameters>
<return> The scope of @list
</return>
</function>

<function name="gst_tag_list_get_string">
<description>
Copies the contents for the given tag into the value, possibly merging
multiple values into one if multiple values are associated with the tag.

Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
to retrieve the first string associated with this tag unmodified.

The resulting string in @value will be in UTF-8 encoding and should be
freed by the caller using g_free when no longer needed. The
returned string is also guaranteed to be non-NULL and non-empty.

Free-function: g_free


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_string_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.

The resulting string in @value will be in UTF-8 encoding and should be
freed by the caller using g_free when no longer needed. The
returned string is also guaranteed to be non-NULL and non-empty.

Free-function: g_free


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_tag_size">
<description>
Checks how many value are stored in this tag list for the given tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a taglist
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> the tag to query
</parameter_description>
</parameter>
</parameters>
<return> The number of tags stored
</return>
</function>

<function name="gst_tag_list_get_uint">
<description>
Copies the contents for the given tag into the value, merging multiple values
into one if multiple values are associated with the tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_uint64">
<description>
Copies the contents for the given tag into the value, merging multiple values
into one if multiple values are associated with the tag.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_uint64_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_uint_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was copied, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_get_value_index">
<description>
Gets the value that is at the given index for the given tag in the given
list.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
</parameters>
<return> The GValue for the specified entry or NULL if the
tag wasn't available or the tag doesn't have as many entries
</return>
</function>

<function name="gst_tag_list_insert">
<description>
Inserts the tags of the @from list into the first list using the given mode.

</description>
<parameters>
<parameter name="into">
<parameter_description> list to merge into
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> list to merge from
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_is_empty">
<description>
Checks if the given taglist is empty.


</description>
<parameters>
<parameter name="list">
<parameter_description> A #GstTagList.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the taglist is empty, otherwise FALSE.
</return>
</function>

<function name="gst_tag_list_is_equal">
<description>
Checks if the two given taglists are equal.


</description>
<parameters>
<parameter name="list1">
<parameter_description> a #GstTagList.
</parameter_description>
</parameter>
<parameter name="list2">
<parameter_description> a #GstTagList.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the taglists are equal, otherwise FALSE
</return>
</function>

<function name="gst_tag_list_is_writable">
<description>
Tests if you can safely modify @taglist. It is only safe to modify taglist
when there is only one owner of the taglist - ie, the refcount is 1.

</description>
<parameters>
<parameter name="taglist">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_make_writable">
<description>
Returns a writable copy of @taglist.

If there is only one reference count on @taglist, the caller must be the
owner, and so this function will return the taglist object unchanged. If on
the other hand there is more than one reference on the object, a new taglist
object will be returned (which will be a copy of @taglist). The caller's
reference on @taglist will be removed, and instead the caller will own a
reference to the returned object.

In short, this function unrefs the taglist in the argument and refs the
taglist that it returns. Don't access the argument after calling this
function. See also: gst_tag_list_ref().


</description>
<parameters>
<parameter name="taglist">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
</parameters>
<return> a writable taglist which may or may not be the
same as @taglist
</return>
</function>

<function name="gst_tag_list_merge">
<description>
Merges the two given lists into a new list. If one of the lists is NULL, a
copy of the other is returned. If both lists are NULL, NULL is returned.

Free-function: gst_tag_list_unref


</description>
<parameters>
<parameter name="list1">
<parameter_description> first list to merge
</parameter_description>
</parameter>
<parameter name="list2">
<parameter_description> second list to merge
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
</parameters>
<return> the new list
</return>
</function>

<function name="gst_tag_list_n_tags">
<description>
Get the number of tags in @list.


</description>
<parameters>
<parameter name="list">
<parameter_description> A #GstTagList.
</parameter_description>
</parameter>
</parameters>
<return> The number of tags in @list.
</return>
</function>

<function name="gst_tag_list_new">
<description>
Creates a new taglist and appends the values for the given tags. It expects
tag-value pairs like gst_tag_list_add(), and a NULL terminator after the
last pair. The type of the values is implicit and is documented in the API
reference, but can also be queried at runtime with gst_tag_get_type(). It
is an error to pass a value of a type not matching the tag type into this
function. The tag list will make copies of any arguments passed
(e.g. strings, buffers).

After creation you might also want to set a #GstTagScope on the returned
taglist to signal if the contained tags are global or stream tags. By
default stream scope is assumes. See gst_tag_list_set_scope().

Free-function: gst_tag_list_unref


</description>
<parameters>
<parameter name="tag">
<parameter_description> tag
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> NULL-terminated list of values to set
</parameter_description>
</parameter>
</parameters>
<return> a new #GstTagList. Free with gst_tag_list_unref()
when no longer needed.
</return>
</function>

<function name="gst_tag_list_new_empty">
<description>
Creates a new empty GstTagList.

Free-function: gst_tag_list_unref


</description>
<parameters>
</parameters>
<return> An empty tag list
</return>
</function>

<function name="gst_tag_list_new_from_id3v1">
<description>
Parses the data containing an ID3v1 tag and returns a #GstTagList from the
parsed data.


</description>
<parameters>
<parameter name="data">
<parameter_description> 128 bytes of data containing the ID3v1 tag
</parameter_description>
</parameter>
</parameters>
<return> A new tag list or NULL if the data was not an ID3v1 tag.
</return>
</function>

<function name="gst_tag_list_new_from_string">
<description>
Deserializes a tag list.


</description>
<parameters>
<parameter name="str">
<parameter_description> a string created with gst_tag_list_to_string()
</parameter_description>
</parameter>
</parameters>
<return> a new #GstTagList, or NULL in case of an error.
</return>
</function>

<function name="gst_tag_list_new_valist">
<description>
Just like gst_tag_list_new(), only that it takes a va_list argument.
Useful mostly for language bindings.

Free-function: gst_tag_list_unref


</description>
<parameters>
<parameter name="var_args">
<parameter_description> tag / value pairs to set
</parameter_description>
</parameter>
</parameters>
<return> a new #GstTagList. Free with gst_tag_list_unref()
when no longer needed.
</return>
</function>

<function name="gst_tag_list_nth_tag_name">
<description>
Get the name of the tag in @list at @index.


</description>
<parameters>
<parameter name="list">
<parameter_description> A #GstTagList.
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return> The name of the tag at @index.
</return>
</function>

<function name="gst_tag_list_peek_string_index">
<description>
Peeks at the value that is at the given index for the given tag in the given
list.

The resulting string in @value will be in UTF-8 encoding and doesn't need
to be freed by the caller. The returned string is also guaranteed to
be non-NULL and non-empty.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList to get the tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to read out
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> number of entry to read out
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location for the result
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if a value was set, FALSE if the tag didn't exist in the
given list.
</return>
</function>

<function name="gst_tag_list_ref">
<description>
Add a reference to a #GstTagList mini object.

From this point on, until the caller calls gst_tag_list_unref() or
gst_tag_list_make_writable(), it is guaranteed that the taglist object will
not change. To use a #GstTagList object, you must always have a refcount on
it -- either the one made implicitly by e.g. gst_tag_list_new(), or via
taking one explicitly with this function.


</description>
<parameters>
<parameter name="taglist">
<parameter_description> the #GstTagList to reference
</parameter_description>
</parameter>
</parameters>
<return> the same #GstTagList mini object.
</return>
</function>

<function name="gst_tag_list_remove_tag">
<description>
Removes the given tag from the taglist.

</description>
<parameters>
<parameter name="list">
<parameter_description> list to remove tag from
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_set_scope">
<description>
Sets the scope of @list to @scope. By default the scope
of a taglist is stream scope.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
<parameter name="scope">
<parameter_description> new scope for @list
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_list_to_exif_buffer">
<description>
Formats the tags in taglist on exif format. The resulting buffer contains
the tags IFD and is followed by the data pointed by the tag entries.


</description>
<parameters>
<parameter name="taglist">
<parameter_description> The taglist
</parameter_description>
</parameter>
<parameter name="byte_order">
<parameter_description> byte order used in writing (G_LITTLE_ENDIAN or G_BIG_ENDIAN)
</parameter_description>
</parameter>
<parameter name="base_offset">
<parameter_description> Offset from the tiff header first byte
</parameter_description>
</parameter>
</parameters>
<return> A GstBuffer containing the tag entries followed by the tag data
</return>
</function>

<function name="gst_tag_list_to_exif_buffer_with_tiff_header">
<description>
Formats the tags in taglist into exif structure, a tiff header
is put in the beginning of the buffer.


</description>
<parameters>
<parameter name="taglist">
<parameter_description> The taglist
</parameter_description>
</parameter>
</parameters>
<return> A GstBuffer containing the data
</return>
</function>

<function name="gst_tag_list_to_string">
<description>
Serializes a tag list to a string.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated string, or NULL in case of an error. The
string must be freed with g_free() when no longer needed.
</return>
</function>

<function name="gst_tag_list_to_vorbiscomment_buffer">
<description>
Creates a new vorbiscomment buffer from a tag list.


</description>
<parameters>
<parameter name="list">
<parameter_description> tag list to convert
</parameter_description>
</parameter>
<parameter name="id_data">
<parameter_description> identification data at start of stream
</parameter_description>
</parameter>
<parameter name="id_data_length">
<parameter_description> length of identification data, may be 0 if @id_data is NULL
</parameter_description>
</parameter>
<parameter name="vendor_string">
<parameter_description> string that describes the vendor string or NULL
</parameter_description>
</parameter>
</parameters>
<return> A new #GstBuffer containing a vorbiscomment buffer with all tags
that could be converted from the given tag list.
</return>
</function>

<function name="gst_tag_list_to_xmp_buffer">
<description>
Formats a taglist as a xmp packet using only the selected
schemas. An empty list (%NULL) means that all schemas should
be used


</description>
<parameters>
<parameter name="list">
<parameter_description> tags
</parameter_description>
</parameter>
<parameter name="read_only">
<parameter_description> does the container forbid inplace editing
</parameter_description>
</parameter>
<parameter name="schemas">
<parameter_description> %NULL terminated array of schemas to be used on serialization
</parameter_description>
</parameter>
</parameters>
<return> new buffer or %NULL, unref the buffer when done
</return>
</function>

<function name="gst_tag_list_unref">
<description>
Unref a #GstTagList, and and free all its memory when the refcount reaches 0.

</description>
<parameters>
<parameter name="taglist">
<parameter_description> a #GstTagList.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_merge_strings_with_comma">
<description>
This is a convenience function for the func argument of gst_tag_register().
It concatenates all given strings using a comma. The tag must be registered
as a G_TYPE_STRING or this function will fail.

</description>
<parameters>
<parameter name="dest">
<parameter_description> uninitialized GValue to store result in
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> GValue to copy from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_merge_use_first">
<description>
This is a convenience function for the func argument of gst_tag_register().
It creates a copy of the first value from the list.

</description>
<parameters>
<parameter name="dest">
<parameter_description> uninitialized GValue to store result in
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> GValue to copy from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_parse_extended_comment">
<description>
Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and
separate it into its components.

If successful, @key, @lang and/or @value will be set to newly allocated
strings that you need to free with g_free() when done. @key and @lang
may also be set to NULL by this function if there is no key or no language
code in the extended comment string.


</description>
<parameters>
<parameter name="ext_comment">
<parameter_description> an extended comment string, see #GST_TAG_EXTENDED_COMMENT
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> return location for the comment description key, or NULL
</parameter_description>
</parameter>
<parameter name="lang">
<parameter_description> return location for the comment ISO-639 language code, or NULL
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> return location for the actual comment string, or NULL
</parameter_description>
</parameter>
<parameter name="fail_if_no_key">
<parameter_description> whether to fail if strings are not in key=value form
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the string could be parsed, otherwise FALSE
</return>
</function>

<function name="gst_tag_register">
<description>
Registers a new tag type for the use with GStreamer's type system. If a type
with that name is already registered, that one is used.
The old registration may have used a different type however. So don't rely
on your supplied values.

Important: if you do not supply a merge function the implication will be
that there can only be one single value for this tag in a tag list and
any additional values will silenty be discarded when being added (unless
#GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
#GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
value will replace the old one in the list).

The merge function will be called from gst_tag_list_copy_value() when
it is required that one or more values for a tag be condensed into
one single value. This may happen from gst_tag_list_get_string(),
gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
exactly in that case depends on how the tag was registered and if a
merge function was supplied and if so which one.

Two default merge functions are provided: gst_tag_merge_use_first() and
gst_tag_merge_strings_with_comma().

</description>
<parameters>
<parameter name="name">
<parameter_description> the name or identifier string
</parameter_description>
</parameter>
<parameter name="flag">
<parameter_description> a flag describing the type of tag info
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type this data is in
</parameter_description>
</parameter>
<parameter name="nick">
<parameter_description> human-readable name
</parameter_description>
</parameter>
<parameter name="blurb">
<parameter_description> a human-readable description about this tag
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> function for merging multiple values of this tag, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_register_musicbrainz_tags">
<description>
Registers additional musicbrainz-specific tags with the GStreamer tag
system. Plugins and applications that use these tags should call this
function before using them. Can be called multiple times.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_tag_register_static">
<description>
Registers a new tag type for the use with GStreamer's type system.

Same as gst_tag_register(), but @name, @nick, and @blurb must be
static strings or inlined strings, as they will not be copied. (GStreamer
plugins will be made resident once loaded, so this function can be used
even from dynamically loaded plugins.)

</description>
<parameters>
<parameter name="name">
<parameter_description> the name or identifier string (string constant)
</parameter_description>
</parameter>
<parameter name="flag">
<parameter_description> a flag describing the type of tag info
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type this data is in
</parameter_description>
</parameter>
<parameter name="nick">
<parameter_description> human-readable name or short description (string constant)
</parameter_description>
</parameter>
<parameter name="blurb">
<parameter_description> a human-readable description for this tag (string constant)
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> function for merging multiple values of this tag, or NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_add_tag_valist">
<description>
Adds the given tag / value pairs on the setter using the given merge mode.
The list must be terminated with NULL.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to set
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> tag / value pairs to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_add_tag_valist_values">
<description>
Adds the given tag / GValue pairs on the setter using the given merge mode.
The list must be terminated with NULL.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to set
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> tag / GValue pairs to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_add_tag_value">
<description>
Adds the given tag / GValue pair on the setter using the given merge mode.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> GValue to set for the tag
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_add_tag_values">
<description>
Adds the given tag / GValue pairs on the setter using the given merge mode.
The list must be terminated with NULL.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> more tag / GValue pairs to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_add_tags">
<description>
Adds the given tag / value pairs on the setter using the given merge mode.
The list must be terminated with NULL.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to use
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> tag to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> more tag / value pairs to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_get_tag_list">
<description>
Returns the current list of tags the setter uses.  The list should not be
modified or freed.

This function is not thread-safe.


</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
</parameters>
<return> a current snapshot of the taglist used in the
setter or NULL if none is used.
</return>
</function>

<function name="gst_tag_setter_get_tag_merge_mode">
<description>
Queries the mode by which tags inside the setter are overwritten by tags
from events


</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
</parameters>
<return> the merge mode used inside the element.
</return>
</function>

<function name="gst_tag_setter_merge_tags">
<description>
Merges the given list into the setter's list using the given mode.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> a tag list to merge from
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to merge with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_reset_tags">
<description>
Reset the internal taglist. Elements should call this from within the
state-change handler.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_setter_set_tag_merge_mode">
<description>
Sets the given merge mode that is used for adding tags from events to tags
specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
the tags set with this interface and discards tags from events.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTagSetter
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> The mode with which tags are added
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_to_id3_tag">
<description>
Looks up the ID3v2 tag for a GStreamer tag.


</description>
<parameters>
<parameter name="gst_tag">
<parameter_description> GStreamer tag to convert to vorbiscomment tag
</parameter_description>
</parameter>
</parameters>
<return> The corresponding ID3v2 tag or NULL if none exists.
</return>
</function>

<function name="gst_tag_to_vorbis_comments">
<description>
Creates a new tag list that contains the information parsed out of a
vorbiscomment packet.


</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a GStreamer tag identifier, such as #GST_TAG_ARTIST
</parameter_description>
</parameter>
</parameters>
<return> A #GList of newly-allocated
key=value strings. Free with g_list_foreach (list, (GFunc) g_free, NULL)
plus g_list_free (list)
</return>
</function>

<function name="gst_tag_to_vorbis_tag">
<description>
Looks up the vorbiscomment tag for a GStreamer tag.


</description>
<parameters>
<parameter name="gst_tag">
<parameter_description> GStreamer tag to convert to vorbiscomment tag
</parameter_description>
</parameter>
</parameters>
<return> The corresponding vorbiscomment tag or NULL if none exists.
</return>
</function>

<function name="gst_tag_xmp_list_schemas">
<description>
Gets the list of supported schemas in the xmp lib


</description>
<parameters>
</parameters>
<return> a %NULL terminated array of strings with the
schema names
</return>
</function>

<function name="gst_tag_xmp_writer_add_all_schemas">
<description>
Adds all available XMP schemas to the configuration. Meaning that
all will be used.

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstTagXmpWriter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_xmp_writer_add_schema">
<description>
Adds @schema to the list schemas

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstTagXmpWriter
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> the schema to be added
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_xmp_writer_has_schema">
<description>
Checks if @schema is going to be used


</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstTagXmpWriter
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> the schema to test
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if it is going to be used
</return>
</function>

<function name="gst_tag_xmp_writer_remove_all_schemas">
<description>
Removes all schemas from the list of schemas to use. Meaning that no
XMP will be generated.

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstTagXmpWriter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_tag_xmp_writer_remove_schema">
<description>
Removes a schema from the list of schemas to use. Nothing is done if
the schema wasn't in the list

</description>
<parameters>
<parameter name="config">
<parameter_description> a #GstTagXmpWriter
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> the schema to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_cleanup_all">
<description>
Wait for all tasks to be stopped. This is mainly used internally
to ensure proper cleanup of internal data structures in test suites.

MT safe.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_task_get_pool">
<description>
Get the #GstTaskPool that this task will use for its streaming
threads.

MT safe.


</description>
<parameters>
<parameter name="task">
<parameter_description> a #GstTask
</parameter_description>
</parameter>
</parameters>
<return> the #GstTaskPool used by @task. gst_object_unref()
after usage.
</return>
</function>

<function name="gst_task_get_state">
<description>
Get the current state of the task.


</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to query
</parameter_description>
</parameter>
</parameters>
<return> The #GstTaskState of the task

MT safe.
</return>
</function>

<function name="gst_task_join">
<description>
Joins @task. After this call, it is safe to unref the task
and clean up the lock set with gst_task_set_lock().

The task will automatically be stopped with this call.

This function cannot be called from within a task function as this
would cause a deadlock. The function will detect this and print a
g_warning.


</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to join
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the task could be joined.

MT safe.
</return>
</function>

<function name="gst_task_new">
<description>
Create a new Task that will repeatedly call the provided @func
with @user_data as a parameter. Typically the task will run in
a new thread.

The function cannot be changed after the task has been created. You
must create a new #GstTask to change the function.

This function will not yet create and start a thread. Use gst_task_start() or
gst_task_pause() to create and start the GThread.

Before the task can be used, a #GRecMutex must be configured using the
gst_task_set_lock() function. This lock will always be acquired while
@func is called.


</description>
<parameters>
<parameter name="func">
<parameter_description> The #GstTaskFunction to use
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @func
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> the function to call when @user_data is no longer needed.
</parameter_description>
</parameter>
</parameters>
<return> A new #GstTask.

MT safe.
</return>
</function>

<function name="gst_task_pause">
<description>
Pauses @task. This method can also be called on a task in the
stopped state, in which case a thread will be started and will remain
in the paused state. This function does not wait for the task to complete
the paused state.


</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to pause
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the task could be paused.

MT safe.
</return>
</function>

<function name="gst_task_pool_cleanup">
<description>
Wait for all tasks to be stopped. This is mainly used internally
to ensure proper cleanup of internal data structures in test suites.

MT safe.

</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstTaskPool
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_pool_join">
<description>
Join a task and/or return it to the pool. @id is the id obtained from 
gst_task_pool_push().

</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstTaskPool
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_pool_new">
<description>
Create a new default task pool. The default task pool will use a regular
GThreadPool for threads.


</description>
<parameters>
</parameters>
<return> a new #GstTaskPool. gst_object_unref() after usage.
</return>
</function>

<function name="gst_task_pool_prepare">
<description>
Prepare the taskpool for accepting gst_task_pool_push() operations.

MT safe.

</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstTaskPool
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> an error return location
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_pool_push">
<description>
Start the execution of a new thread from @pool.


</description>
<parameters>
<parameter name="pool">
<parameter_description> a #GstTaskPool
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to call
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @func
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> a pointer that should be used for the
gst_task_pool_join function. This pointer can be NULL, you must
check @error to detect errors.
</return>
</function>

<function name="gst_task_set_enter_callback">
<description>
Call @enter_func when the task function of @task is entered. @user_data will
be passed to @enter_func and @notify will be called when @user_data is no
longer referenced.

</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to use
</parameter_description>
</parameter>
<parameter name="enter_func">
<parameter_description> a #GstTaskThreadFunc
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @enter_func
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> called when @user_data is no longer referenced
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_set_leave_callback">
<description>
Call @leave_func when the task function of @task is left. @user_data will
be passed to @leave_func and @notify will be called when @user_data is no
longer referenced.

</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to use
</parameter_description>
</parameter>
<parameter name="leave_func">
<parameter_description> a #GstTaskThreadFunc
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @leave_func
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> called when @user_data is no longer referenced
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_set_lock">
<description>
Set the mutex used by the task. The mutex will be acquired before
calling the #GstTaskFunction.

This function has to be called before calling gst_task_pause() or
gst_task_start().

MT safe.

</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to use
</parameter_description>
</parameter>
<parameter name="mutex">
<parameter_description> The #GRecMutex to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_set_pool">
<description>
Set @pool as the new GstTaskPool for @task. Any new streaming threads that
will be created by @task will now use @pool.

MT safe.

</description>
<parameters>
<parameter name="task">
<parameter_description> a #GstTask
</parameter_description>
</parameter>
<parameter name="pool">
<parameter_description> a #GstTaskPool
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_task_set_state">
<description>
Sets the state of @task to @state.

The @task must have a lock associated with it using
gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
this function will return %FALSE.

MT safe.


</description>
<parameters>
<parameter name="task">
<parameter_description> a #GstTask
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the new task state
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the state could be changed.
</return>
</function>

<function name="gst_task_start">
<description>
Starts @task. The @task must have a lock associated with it using
gst_task_set_lock() or this function will return %FALSE.


</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to start
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the task could be started.

MT safe.
</return>
</function>

<function name="gst_task_stop">
<description>
Stops @task. This method merely schedules the task to stop and
will not wait for the task to have completely stopped. Use
gst_task_join() to stop and wait for completion.


</description>
<parameters>
<parameter name="task">
<parameter_description> The #GstTask to stop
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the task could be stopped.

MT safe.
</return>
</function>

<function name="gst_test_clock_advance_time">
<description>
Advances the time of the @test_clock by the amount given by @delta. The
time of @test_clock is monotonically increasing, therefore providing a
@delta which is negative or zero is a programming error.

MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> a #GstTestClock for which to increase the time
</parameter_description>
</parameter>
<parameter name="delta">
<parameter_description> a positive #GstClockTimeDiff to be added to the time of the clock
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_test_clock_get_next_entry_time">
<description>
Retrieve the requested time for the next pending clock notification.

MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> a #GstTestClock to fetch the next clock notification time for
</parameter_description>
</parameter>
</parameters>
<return> a #GstClockTime set to the time of the next pending clock
notification. If no clock notifications have been requested
%GST_CLOCK_TIME_NONE will be returned.

</return>
</function>

<function name="gst_test_clock_has_id">
<description>
Checks whether @test_clock was requested to provide the clock notification
given by @id.

MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> a #GstTestClock to ask if it provided the notification
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a #GstClockID clock notification
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the clock has been asked to provide the given clock
notification, %FALSE otherwise.

</return>
</function>

<function name="gst_test_clock_new">
<description>
Creates a new test clock with its time set to zero.

MT safe.


</description>
<parameters>
</parameters>
<return> a #GstTestClock cast to #GstClock.

</return>
</function>

<function name="gst_test_clock_new_with_start_time">
<description>
Creates a new test clock with its time set to the specified time.

MT safe.


</description>
<parameters>
<parameter name="start_time">
<parameter_description> a #GstClockTime set to the desired start time of the clock.
</parameter_description>
</parameter>
</parameters>
<return> a #GstTestClock cast to #GstClock.

</return>
</function>

<function name="gst_test_clock_peek_id_count">
<description>
Determine the number of pending clock notifications that have been
requested from the @test_clock.

MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> a #GstTestClock for which to count notifications
</parameter_description>
</parameter>
</parameters>
<return> the number of pending clock notifications.

</return>
</function>

<function name="gst_test_clock_peek_next_pending_id">
<description>
Determines if the @pending_id is the next clock notification scheduled to
be triggered given the current time of the @test_clock.

MT safe.

Return: %TRUE if @pending_id is the next clock notification to be
triggered, %FALSE otherwise.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> a #GstTestClock to check the clock notifications for
</parameter_description>
</parameter>
<parameter name="pending_id">
<parameter_description> a #GstClockID clock
notification to look for
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_test_clock_process_next_clock_id">
<description>
MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> a #GstTestClock for which to retrive the next pending clock
notification
</parameter_description>
</parameter>
</parameters>
<return> a #GstClockID containing the next pending clock
notification.

</return>
</function>

<function name="gst_test_clock_set_time">
<description>
Sets the time of @test_clock to the time given by @new_time. The time of
@test_clock is monotonically increasing, therefore providing a @new_time
which is earlier or equal to the time of the clock as given by
gst_clock_get_time() is a programming error.

MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> a #GstTestClock of which to set the time
</parameter_description>
</parameter>
<parameter name="new_time">
<parameter_description> a #GstClockTime later than that returned by gst_clock_get_time()
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_test_clock_wait_for_next_pending_id">
<description>
Waits until a clock notification is requested from @test_clock. There is no
timeout for this wait, see the main description of #GstTestClock. A reference
to the pending clock notification is stored in @pending_id.

MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> #GstTestClock for which to get the pending clock notification
</parameter_description>
</parameter>
<parameter name="pending_id">
<parameter_description> #GstClockID
with information about the pending clock notification
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_test_clock_wait_for_pending_id_count">
<description>
Blocks until at least @count clock notifications have been requested from
@test_clock. There is no timeout for this wait, see the main description of
#GstTestClock.

MT safe.


</description>
<parameters>
<parameter name="test_clock">
<parameter_description> #GstTestClock for which to await having enough pending clock
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of pending clock notifications to wait for
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_timed_value_control_invalidate_cache">
<description>
Reset the controlled value cache.

</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstTimedValueControlSource
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_timed_value_control_source_find_control_point_iter">
<description>
Find last value before given timestamp in control point list.
If all values in the control point list come after the given
timestamp or no values exist, %NULL is returned.

For use in control source implementations.


</description>
<parameters>
<parameter name="self">
<parameter_description> the control source to search in
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the search key
</parameter_description>
</parameter>
</parameters>
<return> the found #GSequenceIter or %NULL
</return>
</function>

<function name="gst_timed_value_control_source_get_all">
<description>
Returns a read-only copy of the list of #GstTimedValue for the given property.
Free the list after done with it.


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstTimedValueControlSource to get the list from
</parameter_description>
</parameter>
</parameters>
<return> a copy
of the list, or %NULL if the property isn't handled by the controller
</return>
</function>

<function name="gst_timed_value_control_source_get_count">
<description>
Get the number of control points that are set.


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstTimedValueControlSource to get the number of values from
</parameter_description>
</parameter>
</parameters>
<return> the number of control points that are set.
</return>
</function>

<function name="gst_timed_value_control_source_set">
<description>
Set the value of given controller-handled property at a certain time.


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstTimedValueControlSource object
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time the control-change is scheduled for
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the control-value
</parameter_description>
</parameter>
</parameters>
<return> FALSE if the values couldn't be set, TRUE otherwise.
</return>
</function>

<function name="gst_timed_value_control_source_set_from_list">
<description>
Sets multiple timed values at once.


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstTimedValueControlSource object
</parameter_description>
</parameter>
<parameter name="timedvalues">
<parameter_description> a list
with #GstTimedValue items
</parameter_description>
</parameter>
</parameters>
<return> FALSE if the values couldn't be set, TRUE otherwise.
</return>
</function>

<function name="gst_timed_value_control_source_unset">
<description>
Used to remove the value of given controller-handled property at a certain
time.


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstTimedValueControlSource object
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the time the control-change should be removed from
</parameter_description>
</parameter>
</parameters>
<return> FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.
</return>
</function>

<function name="gst_timed_value_control_source_unset_all">
<description>
Used to remove all time-stamped values of given controller-handled property


</description>
<parameters>
<parameter name="self">
<parameter_description> the #GstTimedValueControlSource object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_append_entry">
<description>
Appends the #GstTocEntry @entry to @toc.

</description>
<parameters>
<parameter name="toc">
<parameter_description> A #GstToc instance
</parameter_description>
</parameter>
<parameter name="entry">
<parameter_description> A #GstTocEntry
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_copy">
<description>
Copy #GstToc with all subentries (deep copy).


</description>
<parameters>
<parameter name="toc">
<parameter_description> #GstToc to copy.
</parameter_description>
</parameter>
</parameters>
<return> newly allocated #GstToc in case of success, NULL otherwise;
free it when done with gst_toc_unref().
</return>
</function>

<function name="gst_toc_entry_append_sub_entry">
<description>
Appends the #GstTocEntry @subentry to @entry.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
<parameter name="subentry">
<parameter_description> A #GstTocEntry
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_entry_copy">
<description>
Copy #GstTocEntry with all subentries (deep copy).


</description>
<parameters>
<parameter name="entry">
<parameter_description> #GstTocEntry to copy.
</parameter_description>
</parameter>
</parameters>
<return> newly allocated #GstTocEntry in case of success, NULL otherwise;
free it when done with gst_toc_entry_unref().
</return>
</function>

<function name="gst_toc_entry_get_entry_type">
<description>

</description>
<parameters>
<parameter name="entry">
<parameter_description> a #GstTocEntry
</parameter_description>
</parameter>
</parameters>
<return> @entry's entry type
</return>
</function>

<function name="gst_toc_entry_get_parent">
<description>
Gets the parent #GstTocEntry of @entry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
</parameters>
<return> The parent #GstTocEntry of @entry
</return>
</function>

<function name="gst_toc_entry_get_start_stop_times">
<description>
Get start and stop values from the @entry and write them into appropriate storages.


</description>
<parameters>
<parameter name="entry">
<parameter_description> #GstTocEntry to get values from.
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the storage for the start value, leave #NULL if not need.
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> the storage for the stop value, leave #NULL if not need.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if all non-NULL storage pointers were filled with appropriate values,
FALSE otherwise.
</return>
</function>

<function name="gst_toc_entry_get_sub_entries">
<description>
Gets the sub-entries of @entry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
</parameters>
<return> A #GList of #GstTocEntry of @entry
</return>
</function>

<function name="gst_toc_entry_get_tags">
<description>
Gets the tags for @entry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
</parameters>
<return> A #GstTagList for @entry
</return>
</function>

<function name="gst_toc_entry_get_toc">
<description>
Gets the parent #GstToc of @entry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
</parameters>
<return> The parent #GstToc of @entry
</return>
</function>

<function name="gst_toc_entry_get_uid">
<description>
Gets the UID of @entry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
</parameters>
<return> The UID of @entry
</return>
</function>

<function name="gst_toc_entry_is_alternative">
<description>

</description>
<parameters>
<parameter name="entry">
<parameter_description> a #GstTocEntry
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @entry's type is an alternative type, otherwise %FALSE
</return>
</function>

<function name="gst_toc_entry_is_sequence">
<description>

</description>
<parameters>
<parameter name="entry">
<parameter_description> a #GstTocEntry
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @entry's type is a sequence type, otherwise %FALSE
</return>
</function>

<function name="gst_toc_entry_merge_tags">
<description>
Merge @tags into the existing tags of @entry using @mode.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> A #GstTagList or %NULL
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> A #GstTagMergeMode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_entry_new">
<description>
Create new #GstTocEntry structure.


</description>
<parameters>
<parameter name="type">
<parameter_description> entry type.
</parameter_description>
</parameter>
<parameter name="uid">
<parameter_description> unique ID (UID) in the whole TOC.
</parameter_description>
</parameter>
</parameters>
<return> newly allocated #GstTocEntry structure, free it with gst_toc_entry_unref().
</return>
</function>

<function name="gst_toc_entry_set_start_stop_times">
<description>
Set @start and @stop values for the @entry.

</description>
<parameters>
<parameter name="entry">
<parameter_description> #GstTocEntry to set values.
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> start value to set.
</parameter_description>
</parameter>
<parameter name="stop">
<parameter_description> stop value to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_entry_set_tags">
<description>
Set a #GstTagList with tags for the complete @entry.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A #GstTocEntry instance
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> A #GstTagList or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_entry_type_get_nick">
<description>
Converts @type to a string representation.


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GstTocEntryType.
</parameter_description>
</parameter>
</parameters>
<return> Returns a human-readable string for @type. This string is
only for debugging purpose and should not be displayed in a user
interface.
</return>
</function>

<function name="gst_toc_find_entry">
<description>
Find #GstTocEntry with given @uid in the @toc.


</description>
<parameters>
<parameter name="toc">
<parameter_description> #GstToc to search in.
</parameter_description>
</parameter>
<parameter name="uid">
<parameter_description> UID to find #GstTocEntry with.
</parameter_description>
</parameter>
</parameters>
<return> #GstTocEntry with specified @uid from the @toc, or NULL if not found.
</return>
</function>

<function name="gst_toc_get_entries">
<description>
Gets the list of #GstTocEntry of @toc.


</description>
<parameters>
<parameter name="toc">
<parameter_description> A #GstToc instance
</parameter_description>
</parameter>
</parameters>
<return> A #GList of #GstTocEntry for @entry
</return>
</function>

<function name="gst_toc_get_scope">
<description>

</description>
<parameters>
<parameter name="toc">
<parameter_description> a #GstToc instance
</parameter_description>
</parameter>
</parameters>
<return> scope of @toc
</return>
</function>

<function name="gst_toc_get_tags">
<description>
Gets the tags for @toc.


</description>
<parameters>
<parameter name="toc">
<parameter_description> A #GstToc instance
</parameter_description>
</parameter>
</parameters>
<return> A #GstTagList for @entry
</return>
</function>

<function name="gst_toc_merge_tags">
<description>
Merge @tags into the existing tags of @toc using @mode.

</description>
<parameters>
<parameter name="toc">
<parameter_description> A #GstToc instance
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> A #GstTagList or %NULL
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> A #GstTagMergeMode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_new">
<description>
Create a new #GstToc structure.


</description>
<parameters>
<parameter name="scope">
<parameter_description> scope of this TOC
</parameter_description>
</parameter>
</parameters>
<return> newly allocated #GstToc structure, free it
with gst_toc_unref().
</return>
</function>

<function name="gst_toc_set_tags">
<description>
Set a #GstTagList with tags for the complete @toc.

</description>
<parameters>
<parameter name="toc">
<parameter_description> A #GstToc instance
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> A #GstTagList or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_setter_get_toc">
<description>
Return current TOC the setter uses. The TOC should not be
modified without making it writable first.



</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTocSetter.
</parameter_description>
</parameter>
</parameters>
<return> TOC set, or NULL. Unref with gst_toc_unref()
when no longer needed
</return>
</function>

<function name="gst_toc_setter_reset">
<description>
Reset the internal TOC. Elements should call this from within the
state-change handler.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTocSetter.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_toc_setter_set_toc">
<description>
Set the given TOC on the setter. Previously setted TOC will be
unrefed before setting a new one.

</description>
<parameters>
<parameter name="setter">
<parameter_description> a #GstTocSetter.
</parameter_description>
</parameter>
<parameter name="toc">
<parameter_description> a #GstToc to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_trigger_control_source_new">
<description>
This returns a new, unbound #GstTriggerControlSource.


</description>
<parameters>
</parameters>
<return> a new, unbound #GstTriggerControlSource.
</return>
</function>

<function name="gst_type_find_factory_call_function">
<description>
Calls the #GstTypeFindFunction associated with this factory.

</description>
<parameters>
<parameter name="factory">
<parameter_description> A #GstTypeFindFactory
</parameter_description>
</parameter>
<parameter name="find">
<parameter_description> a properly setup #GstTypeFind entry. The get_data
and suggest_type members must be set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_type_find_factory_get_caps">
<description>
Gets the #GstCaps associated with a typefind factory.


</description>
<parameters>
<parameter name="factory">
<parameter_description> A #GstTypeFindFactory
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps associated with this factory
</return>
</function>

<function name="gst_type_find_factory_get_extensions">
<description>
Gets the extensions associated with a #GstTypeFindFactory. The returned
array should not be changed. If you need to change stuff in it, you should
copy it using g_strdupv().  This function may return NULL to indicate
a 0-length list.


</description>
<parameters>
<parameter name="factory">
<parameter_description> A #GstTypeFindFactory
</parameter_description>
</parameter>
</parameters>
<return> a
NULL-terminated array of extensions associated with this factory
</return>
</function>

<function name="gst_type_find_factory_get_list">
<description>
Gets the list of all registered typefind factories. You must free the
list using gst_plugin_feature_list_free().

The returned factories are sorted by highest rank first, and then by
factory name.

Free-function: gst_plugin_feature_list_free


</description>
<parameters>
</parameters>
<return> the list of all
registered #GstTypeFindFactory.
</return>
</function>

<function name="gst_type_find_factory_has_function">
<description>
Check whether the factory has a typefind function. Typefind factories
without typefind functions are a last-effort fallback mechanism to
e.g. assume a certain media type based on the file extension.


</description>
<parameters>
<parameter name="factory">
<parameter_description> A #GstTypeFindFactory
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the factory has a typefind functions set, otherwise FALSE
</return>
</function>

<function name="gst_type_find_get_length">
<description>
Get the length of the data stream.


</description>
<parameters>
<parameter name="find">
<parameter_description> The #GstTypeFind the function was called with
</parameter_description>
</parameter>
</parameters>
<return> The length of the data stream, or 0 if it is not available.
</return>
</function>

<function name="gst_type_find_helper">
<description>
Tries to find what type of data is flowing from the given source #GstPad.

Free-function: gst_caps_unref


</description>
<parameters>
<parameter name="src">
<parameter_description> A source #GstPad
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The length in bytes
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps corresponding to the data stream.
Returns #NULL if no #GstCaps matches the data stream.
</return>
</function>

<function name="gst_type_find_helper_for_buffer">
<description>
Tries to find what type of data is contained in the given #GstBuffer, the
assumption being that the buffer represents the beginning of the stream or
file.

All available typefinders will be called on the data in order of rank. If
a typefinding function returns a probability of #GST_TYPE_FIND_MAXIMUM,
typefinding is stopped immediately and the found caps will be returned
right away. Otherwise, all available typefind functions will the tried,
and the caps with the highest probability will be returned, or #NULL if
the content of the buffer could not be identified.

Free-function: gst_caps_unref


</description>
<parameters>
<parameter name="obj">
<parameter_description> object doing the typefinding, or NULL (used for logging)
</parameter_description>
</parameter>
<parameter name="buf">
<parameter_description> a #GstBuffer with data to typefind
</parameter_description>
</parameter>
<parameter name="prob">
<parameter_description> location to store the probability of the found
caps, or #NULL
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps corresponding to the data, or #NULL
if no type could be found. The caller should free the caps returned
with gst_caps_unref().
</return>
</function>

<function name="gst_type_find_helper_for_data">
<description>
Tries to find what type of data is contained in the given @data, the
assumption being that the data represents the beginning of the stream or
file.

All available typefinders will be called on the data in order of rank. If
a typefinding function returns a probability of #GST_TYPE_FIND_MAXIMUM,
typefinding is stopped immediately and the found caps will be returned
right away. Otherwise, all available typefind functions will the tried,
and the caps with the highest probability will be returned, or #NULL if
the content of @data could not be identified.

Free-function: gst_caps_unref


</description>
<parameters>
<parameter name="obj">
<parameter_description> object doing the typefinding, or NULL (used for logging)
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> a pointer with data to typefind
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of @data
</parameter_description>
</parameter>
<parameter name="prob">
<parameter_description> location to store the probability of the found
caps, or #NULL
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps corresponding to the data, or #NULL
if no type could be found. The caller should free the caps returned
with gst_caps_unref().
</return>
</function>

<function name="gst_type_find_helper_for_extension">
<description>
Tries to find the best #GstCaps associated with @extension.

All available typefinders will be checked against the extension in order
of rank. The caps of the first typefinder that can handle @extension will be
returned.

Free-function: gst_caps_unref


</description>
<parameters>
<parameter name="obj">
<parameter_description> object doing the typefinding, or NULL (used for logging)
</parameter_description>
</parameter>
<parameter name="extension">
<parameter_description> an extension
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps corresponding to @extension, or
#NULL if no type could be found. The caller should free the caps
returned with gst_caps_unref().
</return>
</function>

<function name="gst_type_find_helper_get_range">
<description>
Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
however, this function will use the specified function @func to obtain the
data needed by the typefind functions, rather than operating on a given
source pad. This is useful mostly for elements like tag demuxers which
strip off data at the beginning and/or end of a file and want to typefind
the stripped data stream before adding their own source pad (the specified
callback can then call the upstream peer pad with offsets adjusted for the
tag size, for example).

When @extension is not NULL, this function will first try the typefind
functions for the given extension, which might speed up the typefinding
in many cases.

Free-function: gst_caps_unref


</description>
<parameters>
<parameter name="obj">
<parameter_description> A #GstObject that will be passed as first argument to @func
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of @obj or NULL
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> A generic #GstTypeFindHelperGetRangeFunction that will
be used to access data at random offsets when doing the typefinding
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The length in bytes
</parameter_description>
</parameter>
<parameter name="extension">
<parameter_description> extension of the media
</parameter_description>
</parameter>
<parameter name="prob">
<parameter_description> location to store the probability of the found
caps, or #NULL
</parameter_description>
</parameter>
</parameters>
<return> the #GstCaps corresponding to the data stream.
Returns #NULL if no #GstCaps matches the data stream.
</return>
</function>

<function name="gst_type_find_peek">
<description>
Returns the @size bytes of the stream to identify beginning at offset. If
offset is a positive number, the offset is relative to the beginning of the
stream, if offset is a negative number the offset is relative to the end of
the stream. The returned memory is valid until the typefinding function
returns and must not be freed.


</description>
<parameters>
<parameter name="find">
<parameter_description> The #GstTypeFind object the function was called with
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> The offset
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The number of bytes to return
</parameter_description>
</parameter>
</parameters>
<return> the requested data, or NULL
if that data is not available.
</return>
</function>

<function name="gst_type_find_register">
<description>
Registers a new typefind function to be used for typefinding. After
registering this function will be available for typefinding.
This function is typically called during an element's plugin initialization.


</description>
<parameters>
<parameter name="plugin">
<parameter_description> A #GstPlugin, or NULL for a static typefind function
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> The name for registering
</parameter_description>
</parameter>
<parameter name="rank">
<parameter_description> The rank (or importance) of this typefind function
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> The #GstTypeFindFunction to use
</parameter_description>
</parameter>
<parameter name="extensions">
<parameter_description> Optional comma-separated list of extensions
that could belong to this type
</parameter_description>
</parameter>
<parameter name="possible_caps">
<parameter_description> Optionally the caps that could be returned when typefinding
succeeds
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> Optional user data. This user data must be available until the plugin
is unloaded.
</parameter_description>
</parameter>
<parameter name="data_notify">
<parameter_description> a #GDestroyNotify that will be called on @data when the plugin
is unloaded.
</parameter_description>
</parameter>
</parameters>
<return> TRUE on success, FALSE otherwise
</return>
</function>

<function name="gst_type_find_suggest">
<description>
If a #GstTypeFindFunction calls this function it suggests the caps with the
given probability. A #GstTypeFindFunction may supply different suggestions
in one call.
It is up to the caller of the #GstTypeFindFunction to interpret these values.

</description>
<parameters>
<parameter name="find">
<parameter_description> The #GstTypeFind object the function was called with
</parameter_description>
</parameter>
<parameter name="probability">
<parameter_description> The probability in percent that the suggestion is right
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> The fixed #GstCaps to suggest
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_type_find_suggest_simple">
<description>
If a #GstTypeFindFunction calls this function it suggests the caps with the
given probability. A #GstTypeFindFunction may supply different suggestions
in one call. It is up to the caller of the #GstTypeFindFunction to interpret
these values.

This function is similar to gst_type_find_suggest(), only that instead of
passing a #GstCaps argument you can create the caps on the fly in the same
way as you can with gst_caps_new_simple().

Make sure you terminate the list of arguments with a NULL argument and that
the values passed have the correct type (in terms of width in bytes when
passed to the vararg function - this applies particularly to gdouble and
guint64 arguments).

</description>
<parameters>
<parameter name="find">
<parameter_description> The #GstTypeFind object the function was called with
</parameter_description>
</parameter>
<parameter name="probability">
<parameter_description> The probability in percent that the suggestion is right
</parameter_description>
</parameter>
<parameter name="media_type">
<parameter_description> the media type of the suggested caps
</parameter_description>
</parameter>
<parameter name="fieldname">
<parameter_description> first field of the suggested caps, or NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> additional arguments to the suggested caps in the same format as the
arguments passed to gst_structure_new() (ie. triplets of field name,
field GType and field value)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_update_registry">
<description>
Forces GStreamer to re-scan its plugin paths and update the default
plugin registry.

Applications will almost never need to call this function, it is only
useful if the application knows new plugins have been installed (or old
ones removed) since the start of the application (or, to be precise, the
first call to gst_init()) and the application wants to make use of any
newly-installed plugins without restarting the application.

Applications should assume that the registry update is neither atomic nor
thread-safe and should therefore not have any dynamic pipelines running
(including the playbin and decodebin elements) and should also not create
any elements or access the GStreamer registry while the update is in
progress.

Note that this function may block for a significant amount of time.


</description>
<parameters>
</parameters>
<return> %TRUE if the registry has been updated successfully (does not
imply that there were changes), otherwise %FALSE.
</return>
</function>

<function name="gst_uri_construct">
<description>
Constructs a URI for a given valid protocol and location.

Free-function: g_free


</description>
<parameters>
<parameter name="protocol">
<parameter_description> Protocol for URI
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> Location for URI
</parameter_description>
</parameter>
</parameters>
<return> a new string for this URI. Returns NULL if the
given URI protocol is not valid, or the given location is NULL.
</return>
</function>

<function name="gst_uri_get_location">
<description>
Extracts the location out of a given valid URI, ie. the protocol and &quot;://&quot;
are stripped from the URI, which means that the location returned includes
the hostname if one is specified. The returned string must be freed using
g_free().

Free-function: g_free


</description>
<parameters>
<parameter name="uri">
<parameter_description> A URI string
</parameter_description>
</parameter>
</parameters>
<return> the location for this URI. Returns NULL if the
URI isn't valid. If the URI does not contain a location, an empty
string is returned.
</return>
</function>

<function name="gst_uri_get_protocol">
<description>
Extracts the protocol out of a given valid URI. The returned string must be
freed using g_free().


</description>
<parameters>
<parameter name="uri">
<parameter_description> A URI string
</parameter_description>
</parameter>
</parameters>
<return> The protocol for this URI.
</return>
</function>

<function name="gst_uri_handler_get_protocols">
<description>
Gets the list of protocols supported by @handler. This list may not be
modified.


</description>
<parameters>
<parameter name="handler">
<parameter_description> A #GstURIHandler.
</parameter_description>
</parameter>
</parameters>
<return> the supported protocols.
Returns NULL if the @handler isn't implemented properly, or the @handler
doesn't support any protocols.
</return>
</function>

<function name="gst_uri_handler_get_uri">
<description>
Gets the currently handled URI.


</description>
<parameters>
<parameter name="handler">
<parameter_description> A #GstURIHandler
</parameter_description>
</parameter>
</parameters>
<return> the URI currently handled by the @handler.
Returns NULL if there are no URI currently handled. The
returned string must be freed with g_free() when no longer needed.
</return>
</function>

<function name="gst_uri_handler_get_uri_type">
<description>
Gets the type of the given URI handler


</description>
<parameters>
<parameter name="handler">
<parameter_description> A #GstURIHandler.
</parameter_description>
</parameter>
</parameters>
<return> the #GstURIType of the URI handler.
Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.
</return>
</function>

<function name="gst_uri_handler_set_uri">
<description>
Tries to set the URI of the given handler.


</description>
<parameters>
<parameter name="handler">
<parameter_description> A #GstURIHandler
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> URI to set
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> address where to store a #GError in case of
an error, or NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the URI was set successfully, else FALSE.
</return>
</function>

<function name="gst_uri_has_protocol">
<description>
Checks if the protocol of a given valid URI matches @protocol.


</description>
<parameters>
<parameter name="uri">
<parameter_description> a URI string
</parameter_description>
</parameter>
<parameter name="protocol">
<parameter_description> a protocol string (e.g. &quot;http&quot;)
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the protocol matches.
</return>
</function>

<function name="gst_uri_is_valid">
<description>
Tests if the given string is a valid URI identifier. URIs start with a valid
scheme followed by &quot;:&quot; and maybe a string identifying the location.


</description>
<parameters>
<parameter name="uri">
<parameter_description> A URI string
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the string is a valid URI
</return>
</function>

<function name="gst_uri_protocol_is_supported">
<description>
Checks if an element exists that supports the given URI protocol. Note
that a positive return value does not imply that a subsequent call to
gst_element_make_from_uri() is guaranteed to work.


</description>
<parameters>
<parameter name="type">
<parameter_description> Whether to check for a source or a sink
</parameter_description>
</parameter>
<parameter name="protocol">
<parameter_description> Protocol that should be checked for (e.g. &quot;http&quot; or &quot;smb&quot;)
</parameter_description>
</parameter>
</parameters>
<return> TRUE
</return>
</function>

<function name="gst_uri_protocol_is_valid">
<description>
Tests if the given string is a valid protocol identifier. Protocols
must consist of alphanumeric characters, '+', '-' and '.' and must
start with a alphabetic character. See RFC 3986 Section 3.1.


</description>
<parameters>
<parameter name="protocol">
<parameter_description> A string
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the string is a valid protocol identifier, FALSE otherwise.
</return>
</function>

<function name="gst_util_array_binary_search">
<description>
Searches inside @array for @search_data by using the comparison function
@search_func. @array must be sorted ascending.

As @search_data is always passed as second argument to @search_func it's
not required that @search_data has the same type as the array elements.

The complexity of this search function is O(log (num_elements)).


</description>
<parameters>
<parameter name="array">
<parameter_description> the sorted input array
</parameter_description>
</parameter>
<parameter name="num_elements">
<parameter_description> number of elements in the array
</parameter_description>
</parameter>
<parameter name="element_size">
<parameter_description> size of every element in bytes
</parameter_description>
</parameter>
<parameter name="search_func">
<parameter_description> function to compare two elements, @search_data will always be passed as second argument
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> search mode that should be used
</parameter_description>
</parameter>
<parameter name="search_data">
<parameter_description> element that should be found
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @search_func
</parameter_description>
</parameter>
</parameters>
<return> The address of the found element or %NULL if nothing was found
</return>
</function>

<function name="gst_util_double_to_fraction">
<description>
Transforms a #gdouble to a fraction and simplifies
the result.

</description>
<parameters>
<parameter name="src">
<parameter_description> #gdouble to transform
</parameter_description>
</parameter>
<parameter name="dest_n">
<parameter_description> pointer to a #gint to hold the result numerator
</parameter_description>
</parameter>
<parameter name="dest_d">
<parameter_description> pointer to a #gint to hold the result denominator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_util_dump_mem">
<description>
Dumps the memory block into a hex representation. Useful for debugging.

</description>
<parameters>
<parameter name="mem">
<parameter_description> a pointer to the memory to dump
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the memory block to dump
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_util_fraction_add">
<description>
Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
the result in @res_n and @res_d.


</description>
<parameters>
<parameter name="a_n">
<parameter_description> Numerator of first value
</parameter_description>
</parameter>
<parameter name="a_d">
<parameter_description> Denominator of first value
</parameter_description>
</parameter>
<parameter name="b_n">
<parameter_description> Numerator of second value
</parameter_description>
</parameter>
<parameter name="b_d">
<parameter_description> Denominator of second value
</parameter_description>
</parameter>
<parameter name="res_n">
<parameter_description> Pointer to #gint to hold the result numerator
</parameter_description>
</parameter>
<parameter name="res_d">
<parameter_description> Pointer to #gint to hold the result denominator
</parameter_description>
</parameter>
</parameters>
<return> %FALSE on overflow, %TRUE otherwise.
</return>
</function>

<function name="gst_util_fraction_compare">
<description>
Compares the fractions @a_n/@a_d and @b_n/@b_d and returns
-1 if a &lt; b, 0 if a = b and 1 if a &gt; b.


</description>
<parameters>
<parameter name="a_n">
<parameter_description> Numerator of first value
</parameter_description>
</parameter>
<parameter name="a_d">
<parameter_description> Denominator of first value
</parameter_description>
</parameter>
<parameter name="b_n">
<parameter_description> Numerator of second value
</parameter_description>
</parameter>
<parameter name="b_d">
<parameter_description> Denominator of second value
</parameter_description>
</parameter>
</parameters>
<return> -1 if a &lt; b; 0 if a = b; 1 if a &gt; b.
</return>
</function>

<function name="gst_util_fraction_multiply">
<description>
Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
the result in @res_n and @res_d.


</description>
<parameters>
<parameter name="a_n">
<parameter_description> Numerator of first value
</parameter_description>
</parameter>
<parameter name="a_d">
<parameter_description> Denominator of first value
</parameter_description>
</parameter>
<parameter name="b_n">
<parameter_description> Numerator of second value
</parameter_description>
</parameter>
<parameter name="b_d">
<parameter_description> Denominator of second value
</parameter_description>
</parameter>
<parameter name="res_n">
<parameter_description> Pointer to #gint to hold the result numerator
</parameter_description>
</parameter>
<parameter name="res_d">
<parameter_description> Pointer to #gint to hold the result denominator
</parameter_description>
</parameter>
</parameters>
<return> %FALSE on overflow, %TRUE otherwise.
</return>
</function>

<function name="gst_util_fraction_to_double">
<description>
Transforms a fraction to a #gdouble.

</description>
<parameters>
<parameter name="src_n">
<parameter_description> Fraction numerator as #gint
</parameter_description>
</parameter>
<parameter name="src_d">
<parameter_description> Fraction denominator #gint
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> pointer to a #gdouble for the result
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_util_get_timestamp">
<description>
Get a timestamp as GstClockTime to be used for interval measurements.
The timestamp should not be interpreted in any other way.


</description>
<parameters>
</parameters>
<return> the timestamp
</return>
</function>

<function name="gst_util_greatest_common_divisor">
<description>
Calculates the greatest common divisor of @a
and @b.


</description>
<parameters>
<parameter name="a">
<parameter_description> First value as #gint
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> Second value as #gint
</parameter_description>
</parameter>
</parameters>
<return> Greatest common divisor of @a and @b
</return>
</function>

<function name="gst_util_greatest_common_divisor_int64">
<description>
Calculates the greatest common divisor of @a
and @b.


</description>
<parameters>
<parameter name="a">
<parameter_description> First value as #gint64
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> Second value as #gint64
</parameter_description>
</parameter>
</parameters>
<return> Greatest common divisor of @a and @b
</return>
</function>

<function name="gst_util_seqnum_compare">
<description>
Compare two sequence numbers, handling wraparound.

The current implementation just returns (gint32)(@s1 - @s2).


</description>
<parameters>
<parameter name="s1">
<parameter_description> A sequence number.
</parameter_description>
</parameter>
<parameter name="s2">
<parameter_description> Another sequence number.
</parameter_description>
</parameter>
</parameters>
<return> A negative number if @s1 is before @s2, 0 if they are equal, or a
positive number if @s1 is after @s2.
</return>
</function>

<function name="gst_util_seqnum_next">
<description>
Return a constantly incrementing sequence number.

This function is used internally to GStreamer to be able to determine which
events and messages are &quot;the same&quot;. For example, elements may set the seqnum
on a segment-done message to be the same as that of the last seek event, to
indicate that event and the message correspond to the same segment.


</description>
<parameters>
</parameters>
<return> A constantly incrementing 32-bit unsigned integer, which might
overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
you handle wraparound correctly.
</return>
</function>

<function name="gst_util_set_object_arg">
<description>
Convertes the string value to the type of the objects argument and
sets the argument with it.

Note that this function silently returns if @object has no property named
@name or when @value cannot be converted to the type of the property.

</description>
<parameters>
<parameter name="object">
<parameter_description> the object to set the argument of
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the argument to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the string value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_util_set_value_from_string">
<description>
Converts the string to the type of the value and
sets the value with it.

Note that this function is dangerous as it does not return any indication
if the conversion worked or not.

</description>
<parameters>
<parameter name="value">
<parameter_description> the value to set
</parameter_description>
</parameter>
<parameter name="value_str">
<parameter_description> the string to get the value from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_util_uint64_scale">
<description>
Scale @val by the rational number @num / @denom, avoiding overflows and
underflows and without loss of precision.

This function can potentially be very slow if val and num are both
greater than G_MAXUINT32.


</description>
<parameters>
<parameter name="val">
<parameter_description> the number to scale
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> the numerator of the scale ratio
</parameter_description>
</parameter>
<parameter name="denom">
<parameter_description> the denominator of the scale ratio
</parameter_description>
</parameter>
</parameters>
<return> @val * @num / @denom.  In the case of an overflow, this
function returns G_MAXUINT64.  If the result is not exactly
representable as an integer it is truncated.  See also
gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
gst_util_uint64_scale_int_ceil().
</return>
</function>

<function name="gst_util_uint64_scale_ceil">
<description>
Scale @val by the rational number @num / @denom, avoiding overflows and
underflows and without loss of precision.

This function can potentially be very slow if val and num are both
greater than G_MAXUINT32.


</description>
<parameters>
<parameter name="val">
<parameter_description> the number to scale
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> the numerator of the scale ratio
</parameter_description>
</parameter>
<parameter name="denom">
<parameter_description> the denominator of the scale ratio
</parameter_description>
</parameter>
</parameters>
<return> @val * @num / @denom.  In the case of an overflow, this
function returns G_MAXUINT64.  If the result is not exactly
representable as an integer, it is rounded up.  See also
gst_util_uint64_scale(), gst_util_uint64_scale_round(),
gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
gst_util_uint64_scale_int_ceil().
</return>
</function>

<function name="gst_util_uint64_scale_int">
<description>
Scale @val by the rational number @num / @denom, avoiding overflows and
underflows and without loss of precision.  @num must be non-negative and
@denom must be positive.


</description>
<parameters>
<parameter name="val">
<parameter_description> guint64 (such as a #GstClockTime) to scale.
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> numerator of the scale factor.
</parameter_description>
</parameter>
<parameter name="denom">
<parameter_description> denominator of the scale factor.
</parameter_description>
</parameter>
</parameters>
<return> @val * @num / @denom.  In the case of an overflow, this
function returns G_MAXUINT64.  If the result is not exactly
representable as an integer, it is truncated.  See also
gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
gst_util_uint64_scale(), gst_util_uint64_scale_round(),
gst_util_uint64_scale_ceil().
</return>
</function>

<function name="gst_util_uint64_scale_int_ceil">
<description>
Scale @val by the rational number @num / @denom, avoiding overflows and
underflows and without loss of precision.  @num must be non-negative and
@denom must be positive.


</description>
<parameters>
<parameter name="val">
<parameter_description> guint64 (such as a #GstClockTime) to scale.
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> numerator of the scale factor.
</parameter_description>
</parameter>
<parameter name="denom">
<parameter_description> denominator of the scale factor.
</parameter_description>
</parameter>
</parameters>
<return> @val * @num / @denom.  In the case of an overflow, this
function returns G_MAXUINT64.  If the result is not exactly
representable as an integer, it is rounded up.  See also
gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
gst_util_uint64_scale(), gst_util_uint64_scale_round(),
gst_util_uint64_scale_ceil().
</return>
</function>

<function name="gst_util_uint64_scale_int_round">
<description>
Scale @val by the rational number @num / @denom, avoiding overflows and
underflows and without loss of precision.  @num must be non-negative and
@denom must be positive.


</description>
<parameters>
<parameter name="val">
<parameter_description> guint64 (such as a #GstClockTime) to scale.
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> numerator of the scale factor.
</parameter_description>
</parameter>
<parameter name="denom">
<parameter_description> denominator of the scale factor.
</parameter_description>
</parameter>
</parameters>
<return> @val * @num / @denom.  In the case of an overflow, this
function returns G_MAXUINT64.  If the result is not exactly
representable as an integer, it is rounded to the nearest integer
(half-way cases are rounded up).  See also gst_util_uint64_scale_int(),
gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().
</return>
</function>

<function name="gst_util_uint64_scale_round">
<description>
Scale @val by the rational number @num / @denom, avoiding overflows and
underflows and without loss of precision.

This function can potentially be very slow if val and num are both
greater than G_MAXUINT32.


</description>
<parameters>
<parameter name="val">
<parameter_description> the number to scale
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> the numerator of the scale ratio
</parameter_description>
</parameter>
<parameter name="denom">
<parameter_description> the denominator of the scale ratio
</parameter_description>
</parameter>
</parameters>
<return> @val * @num / @denom.  In the case of an overflow, this
function returns G_MAXUINT64.  If the result is not exactly
representable as an integer, it is rounded to the nearest integer
(half-way cases are rounded up).  See also gst_util_uint64_scale(),
gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().
</return>
</function>

<function name="gst_value_array_append_and_take_value">
<description>
Appends @append_value to the GstValueArray in @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_ARRAY
</parameter_description>
</parameter>
<parameter name="append_value">
<parameter_description> the value to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_array_append_value">
<description>
Appends @append_value to the GstValueArray in @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_ARRAY
</parameter_description>
</parameter>
<parameter name="append_value">
<parameter_description> the value to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_array_get_size">
<description>
Gets the number of values contained in @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_ARRAY
</parameter_description>
</parameter>
</parameters>
<return> the number of values
</return>
</function>

<function name="gst_value_array_get_value">
<description>
Gets the value that is a member of the array contained in @value and
has the index @index.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_ARRAY
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> index of value to get from the array
</parameter_description>
</parameter>
</parameters>
<return> the value at the given index
</return>
</function>

<function name="gst_value_array_prepend_value">
<description>
Prepends @prepend_value to the GstValueArray in @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_ARRAY
</parameter_description>
</parameter>
<parameter name="prepend_value">
<parameter_description> the value to prepend
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_can_compare">
<description>
Determines if @value1 and @value2 can be compared.


</description>
<parameters>
<parameter name="value1">
<parameter_description> a value to compare
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> another value to compare
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the values can be compared
</return>
</function>

<function name="gst_value_can_intersect">
<description>
Determines if intersecting two values will produce a valid result.
Two values will produce a valid intersection if they have the same
type, or if there is a method (registered by
gst_value_register_intersect_func()) to calculate the intersection.


</description>
<parameters>
<parameter name="value1">
<parameter_description> a value to intersect
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> another value to intersect
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the values can intersect
</return>
</function>

<function name="gst_value_can_subtract">
<description>
Checks if it's possible to subtract @subtrahend from @minuend.


</description>
<parameters>
<parameter name="minuend">
<parameter_description> the value to subtract from
</parameter_description>
</parameter>
<parameter name="subtrahend">
<parameter_description> the value to subtract
</parameter_description>
</parameter>
</parameters>
<return> TRUE if a subtraction is possible
</return>
</function>

<function name="gst_value_can_union">
<description>
Determines if @value1 and @value2 can be non-trivially unioned.
Any two values can be trivially unioned by adding both of them
to a GstValueList.  However, certain types have the possibility
to be unioned in a simpler way.  For example, an integer range
and an integer can be unioned if the integer is a subset of the
integer range.  If there is the possibility that two values can
be unioned, this function returns TRUE.


</description>
<parameters>
<parameter name="value1">
<parameter_description> a value to union
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> another value to union
</parameter_description>
</parameter>
</parameters>
<return> TRUE if there is a function allowing the two values to
be unioned.
</return>
</function>

<function name="gst_value_compare">
<description>
Compares @value1 and @value2.  If @value1 and @value2 cannot be
compared, the function returns GST_VALUE_UNORDERED.  Otherwise,
if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
If the values are equal, GST_VALUE_EQUAL is returned.


</description>
<parameters>
<parameter name="value1">
<parameter_description> a value to compare
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> another value to compare
</parameter_description>
</parameter>
</parameters>
<return> comparison result
</return>
</function>

<function name="gst_value_deserialize">
<description>
Tries to deserialize a string into the type specified by the given GValue.
If the operation succeeds, TRUE is returned, FALSE otherwise.


</description>
<parameters>
<parameter name="dest">
<parameter_description> #GValue to fill with contents of
deserialization
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> string to deserialize
</parameter_description>
</parameter>
</parameters>
<return> TRUE on success
</return>
</function>

<function name="gst_value_fixate">
<description>
Fixate @src into a new value @dest.
For ranges, the first element is taken. For lists and arrays, the
first item is fixated and returned.
If @src is already fixed, this function returns FALSE.


</description>
<parameters>
<parameter name="dest">
<parameter_description> the #GValue destination
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> the #GValue to fixate
</parameter_description>
</parameter>
</parameters>
<return> true if @dest contains a fixated version of @src.
</return>
</function>

<function name="gst_value_fraction_multiply">
<description>
Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets
@product to the product of the two fractions.


</description>
<parameters>
<parameter name="product">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
<parameter name="factor1">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
<parameter name="factor2">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
</parameters>
<return> FALSE in case of an error (like integer overflow), TRUE otherwise.
</return>
</function>

<function name="gst_value_fraction_subtract">
<description>
Subtracts the @subtrahend from the @minuend and sets @dest to the result.


</description>
<parameters>
<parameter name="dest">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
<parameter name="minuend">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
<parameter name="subtrahend">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
</parameters>
<return> FALSE in case of an error (like integer overflow), TRUE otherwise.
</return>
</function>

<function name="gst_value_get_bitmask">
<description>
Gets the bitmask specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
</parameters>
<return> the bitmask.
</return>
</function>

<function name="gst_value_get_buffer">
<description>
Receives a #GstBuffer as the value of @v. Does not return a reference to
the buffer, so the pointer is only valid for as long as the caller owns
a reference to @v.


</description>
<parameters>
<parameter name="v">
<parameter_description> a #GValue to query
</parameter_description>
</parameter>
</parameters>
<return> buffer
</return>
</function>

<function name="gst_value_get_caps">
<description>
Gets the contents of @value. The reference count of the returned
#GstCaps will not be modified, therefore the caller must take one
before getting rid of the @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_CAPS
</parameter_description>
</parameter>
</parameters>
<return> the contents of @value
</return>
</function>

<function name="gst_value_get_caps_features">
<description>
Gets the contents of @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_CAPS_FEATURES
</parameter_description>
</parameter>
</parameters>
<return> the contents of @value
</return>
</function>

<function name="gst_value_get_double_range_max">
<description>
Gets the maximum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_DOUBLE_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the maxumum of the range
</return>
</function>

<function name="gst_value_get_double_range_min">
<description>
Gets the minimum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_DOUBLE_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the minimum of the range
</return>
</function>

<function name="gst_value_get_fraction_denominator">
<description>
Gets the denominator of the fraction specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
</parameters>
<return> the denominator of the fraction.
</return>
</function>

<function name="gst_value_get_fraction_numerator">
<description>
Gets the numerator of the fraction specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
</parameters>
<return> the numerator of the fraction.
</return>
</function>

<function name="gst_value_get_fraction_range_max">
<description>
Gets the maximum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_FRACTION_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the maximum of the range
</return>
</function>

<function name="gst_value_get_fraction_range_min">
<description>
Gets the minimum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_FRACTION_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the minimum of the range
</return>
</function>

<function name="gst_value_get_int64_range_max">
<description>
Gets the maximum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT64_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the maxumum of the range
</return>
</function>

<function name="gst_value_get_int64_range_min">
<description>
Gets the minimum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT64_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the minimum of the range
</return>
</function>

<function name="gst_value_get_int64_range_step">
<description>
Gets the step of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT64_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the step of the range
</return>
</function>

<function name="gst_value_get_int_range_max">
<description>
Gets the maximum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the maxumum of the range
</return>
</function>

<function name="gst_value_get_int_range_min">
<description>
Gets the minimum of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the minimum of the range
</return>
</function>

<function name="gst_value_get_int_range_step">
<description>
Gets the step of the range specified by @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT_RANGE
</parameter_description>
</parameter>
</parameters>
<return> the step of the range
</return>
</function>

<function name="gst_value_get_sample">
<description>
Receives a #GstSample as the value of @v. Does not return a reference to
the sample, so the pointer is only valid for as long as the caller owns
a reference to @v.


</description>
<parameters>
<parameter name="v">
<parameter_description> a #GValue to query
</parameter_description>
</parameter>
</parameters>
<return> sample
</return>
</function>

<function name="gst_value_get_structure">
<description>
Gets the contents of @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_STRUCTURE
</parameter_description>
</parameter>
</parameters>
<return> the contents of @value
</return>
</function>

<function name="gst_value_init_and_copy">
<description>
Initialises the target value to be of the same type as source and then copies
the contents from source to target.

</description>
<parameters>
<parameter name="dest">
<parameter_description> the target value
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> the source value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_intersect">
<description>
Calculates the intersection of two values.  If the values have
a non-empty intersection, the value representing the intersection
is placed in @dest, unless NULL.  If the intersection is non-empty,
@dest is not modified.


</description>
<parameters>
<parameter name="dest">
<parameter_description> a uninitialized #GValue that will hold the calculated
intersection value. May be NULL if the resulting set if not needed.
</parameter_description>
</parameter>
<parameter name="value1">
<parameter_description> a value to intersect
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> another value to intersect
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the intersection is non-empty
</return>
</function>

<function name="gst_value_is_fixed">
<description>
Tests if the given GValue, if available in a GstStructure (or any other
container) contains a &quot;fixed&quot; (which means: one value) or an &quot;unfixed&quot;
(which means: multiple possible values, such as data lists or data
ranges) value.


</description>
<parameters>
<parameter name="value">
<parameter_description> the #GValue to check
</parameter_description>
</parameter>
</parameters>
<return> true if the value is &quot;fixed&quot;.
</return>
</function>

<function name="gst_value_is_subset">
<description>
Check that @value1 is a subset of @value2.

Return: %TRUE is @value1 is a subset of @value2

</description>
<parameters>
<parameter name="value1">
<parameter_description> a #GValue
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> a #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_list_append_and_take_value">
<description>
Appends @append_value to the GstValueList in @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_LIST
</parameter_description>
</parameter>
<parameter name="append_value">
<parameter_description> the value to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_list_append_value">
<description>
Appends @append_value to the GstValueList in @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_LIST
</parameter_description>
</parameter>
<parameter name="append_value">
<parameter_description> the value to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_list_concat">
<description>
Concatenates copies of @value1 and @value2 into a list.  Values that are not
of type #GST_TYPE_LIST are treated as if they were lists of length 1.
@dest will be initialized to the type #GST_TYPE_LIST.

</description>
<parameters>
<parameter name="dest">
<parameter_description> an uninitialized #GValue to take the result
</parameter_description>
</parameter>
<parameter name="value1">
<parameter_description> a #GValue
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> a #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_list_get_size">
<description>
Gets the number of values contained in @value.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_LIST
</parameter_description>
</parameter>
</parameters>
<return> the number of values
</return>
</function>

<function name="gst_value_list_get_value">
<description>
Gets the value that is a member of the list contained in @value and
has the index @index.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_LIST
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> index of value to get from the list
</parameter_description>
</parameter>
</parameters>
<return> the value at the given index
</return>
</function>

<function name="gst_value_list_merge">
<description>
Merges copies of @value1 and @value2.  Values that are not
of type #GST_TYPE_LIST are treated as if they were lists of length 1.

The result will be put into @dest and will either be a list that will not
contain any duplicates, or a non-list type (if @value1 and @value2
were equal).

</description>
<parameters>
<parameter name="dest">
<parameter_description> an uninitialized #GValue to take the result
</parameter_description>
</parameter>
<parameter name="value1">
<parameter_description> a #GValue
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> a #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_list_prepend_value">
<description>
Prepends @prepend_value to the GstValueList in @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue of type #GST_TYPE_LIST
</parameter_description>
</parameter>
<parameter name="prepend_value">
<parameter_description> the value to prepend
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_register">
<description>
Registers functions to perform calculations on #GValue items of a given
type. Each type can only be added once.

</description>
<parameters>
<parameter name="table">
<parameter_description> structure containing functions to register
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_serialize">
<description>
tries to transform the given @value into a string representation that allows
getting back this string later on using gst_value_deserialize().

Free-function: g_free


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue to serialize
</parameter_description>
</parameter>
</parameters>
<return> the serialization for @value or NULL if none exists
</return>
</function>

<function name="gst_value_set_bitmask">
<description>
Sets @value to the bitmask specified by @bitmask.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
<parameter name="bitmask">
<parameter_description> the bitmask
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_buffer">
<description>
Sets @b as the value of @v.  Caller retains reference to buffer.

</description>
<parameters>
<parameter name="v">
<parameter_description> a #GValue to receive the data
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #GstBuffer to assign to the GstValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_caps">
<description>
Sets the contents of @value to @caps. A reference to the
provided @caps will be taken by the @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_CAPS
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the caps to set the value to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_caps_features">
<description>
Sets the contents of @value to @features.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_CAPS_FEATURES
</parameter_description>
</parameter>
<parameter name="features">
<parameter_description> the features to set the value to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_double_range">
<description>
Sets @value to the range specified by @start and @end.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_DOUBLE_RANGE
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_fraction">
<description>
Sets @value to the fraction specified by @numerator over @denominator.
The fraction gets reduced to the smallest numerator and denominator,
and if necessary the sign is moved to the numerator.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to #GST_TYPE_FRACTION
</parameter_description>
</parameter>
<parameter name="numerator">
<parameter_description> the numerator of the fraction
</parameter_description>
</parameter>
<parameter name="denominator">
<parameter_description> the denominator of the fraction
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_fraction_range">
<description>
Sets @value to the range specified by @start and @end.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_FRACTION_RANGE
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range (a GST_TYPE_FRACTION GValue)
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range (a GST_TYPE_FRACTION GValue)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_fraction_range_full">
<description>
Sets @value to the range specified by @numerator_start/@denominator_start
and @numerator_end/@denominator_end.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_FRACTION_RANGE
</parameter_description>
</parameter>
<parameter name="numerator_start">
<parameter_description> the numerator start of the range
</parameter_description>
</parameter>
<parameter name="denominator_start">
<parameter_description> the denominator start of the range
</parameter_description>
</parameter>
<parameter name="numerator_end">
<parameter_description> the numerator end of the range
</parameter_description>
</parameter>
<parameter name="denominator_end">
<parameter_description> the denominator end of the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_int64_range">
<description>
Sets @value to the range specified by @start and @end.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT64_RANGE
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_int64_range_step">
<description>
Sets @value to the range specified by @start, @end and @step.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT64_RANGE
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the step of the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_int_range">
<description>
Sets @value to the range specified by @start and @end.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT_RANGE
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_int_range_step">
<description>
Sets @value to the range specified by @start, @end and @step.

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_INT_RANGE
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the step of the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_sample">
<description>
Sets @b as the value of @v.  Caller retains reference to sample.

</description>
<parameters>
<parameter name="v">
<parameter_description> a #GValue to receive the data
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #GstSample to assign to the GstValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_set_structure">
<description>
Sets the contents of @value to @structure.  The actual

</description>
<parameters>
<parameter name="value">
<parameter_description> a GValue initialized to GST_TYPE_STRUCTURE
</parameter_description>
</parameter>
<parameter name="structure">
<parameter_description> the structure to set the value to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_subtract">
<description>
Subtracts @subtrahend from @minuend and stores the result in @dest.
Note that this means subtraction as in sets, not as in mathematics.


</description>
<parameters>
<parameter name="dest">
<parameter_description> the destination value for the result if the
subtraction is not empty. May be NULL, in which case the resulting set
will not be computed, which can give a fair speedup.
</parameter_description>
</parameter>
<parameter name="minuend">
<parameter_description> the value to subtract from
</parameter_description>
</parameter>
<parameter name="subtrahend">
<parameter_description> the value to subtract
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the subtraction is not empty
</return>
</function>

<function name="gst_value_take_buffer">
<description>
Sets @b as the value of @v.  Caller gives away reference to buffer.

</description>
<parameters>
<parameter name="v">
<parameter_description> a #GValue to receive the data
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #GstBuffer to assign to the GstValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_take_sample">
<description>
Sets @b as the value of @v.  Caller gives away reference to sample.

</description>
<parameters>
<parameter name="v">
<parameter_description> a #GValue to receive the data
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a #GstSample to assign to the GstValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_value_union">
<description>
Creates a GValue corresponding to the union of @value1 and @value2.


</description>
<parameters>
<parameter name="dest">
<parameter_description> the destination value
</parameter_description>
</parameter>
<parameter name="value1">
<parameter_description> a value to union
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> another value to union
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the union suceeded.
</return>
</function>

<function name="gst_version">
<description>
Gets the version number of the GStreamer library.

</description>
<parameters>
<parameter name="major">
<parameter_description> pointer to a guint to store the major version number
</parameter_description>
</parameter>
<parameter name="minor">
<parameter_description> pointer to a guint to store the minor version number
</parameter_description>
</parameter>
<parameter name="micro">
<parameter_description> pointer to a guint to store the micro version number
</parameter_description>
</parameter>
<parameter name="nano">
<parameter_description> pointer to a guint to store the nano version number
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_version_string">
<description>
This function returns a string that is useful for describing this version
of GStreamer to the outside world: user agent strings, logging, ...


</description>
<parameters>
</parameters>
<return> a newly allocated string describing this version
of GStreamer.
</return>
</function>

<function name="gst_video_alignment_reset">
<description>
Set @align to its default values with no padding and no alignment.

</description>
<parameters>
<parameter name="align">
<parameter_description> a #GstVideoAlignment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_buffer_pool_new">
<description>
Create a new bufferpool that can allocate video frames. This bufferpool
supports all the video bufferpool options.


</description>
<parameters>
</parameters>
<return> a new #GstBufferPool to allocate video frames
</return>
</function>

<function name="gst_video_calculate_display_ratio">
<description>
Given the Pixel Aspect Ratio and size of an input video frame, and the
pixel aspect ratio of the intended display device, calculates the actual
display ratio the video will be rendered with.


</description>
<parameters>
<parameter name="dar_n">
<parameter_description> Numerator of the calculated display_ratio
</parameter_description>
</parameter>
<parameter name="dar_d">
<parameter_description> Denominator of the calculated display_ratio
</parameter_description>
</parameter>
<parameter name="video_width">
<parameter_description> Width of the video frame in pixels
</parameter_description>
</parameter>
<parameter name="video_height">
<parameter_description> Height of the video frame in pixels
</parameter_description>
</parameter>
<parameter name="video_par_n">
<parameter_description> Numerator of the pixel aspect ratio of the input video.
</parameter_description>
</parameter>
<parameter name="video_par_d">
<parameter_description> Denominator of the pixel aspect ratio of the input video.
</parameter_description>
</parameter>
<parameter name="display_par_n">
<parameter_description> Numerator of the pixel aspect ratio of the display device
</parameter_description>
</parameter>
<parameter name="display_par_d">
<parameter_description> Denominator of the pixel aspect ratio of the display device
</parameter_description>
</parameter>
</parameters>
<return> A boolean indicating success and a calculated Display Ratio in the
dar_n and dar_d parameters.
The return value is FALSE in the case of integer overflow or other error.
</return>
</function>

<function name="gst_video_chroma_from_string">
<description>
Convert @s to a #GstVideoChromaSite


</description>
<parameters>
<parameter name="s">
<parameter_description> a chromasite string
</parameter_description>
</parameter>
</parameters>
<return> a #GstVideoChromaSite or %GST_VIDEO_CHROMA_SITE_UNKNOWN when @s does
not contain a valid chroma description.
</return>
</function>

<function name="gst_video_chroma_resample">
<description>
Perform resampling of @width chroma pixels in @lines.

</description>
<parameters>
<parameter name="resample">
<parameter_description> a #GstVideoChromaResample
</parameter_description>
</parameter>
<parameter name="lines">
<parameter_description> pixel lines
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the number of pixels on one line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_chroma_resample_free">
<description>
Free @resample

</description>
<parameters>
<parameter name="resample">
<parameter_description> a #GstVideoChromaResample
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_chroma_resample_get_info">
<description>
The resampler must be fed @n_lines at a time. The first line should be
at @offset.

</description>
<parameters>
<parameter name="resample">
<parameter_description> a #GstVideoChromaResample
</parameter_description>
</parameter>
<parameter name="n_lines">
<parameter_description> the number of input lines
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the first line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_chroma_resample_new">
<description>
Create a new resampler object for the given parameters. When @h_factor or
@v_factoris &gt; 0, upsampling will be used, otherwise subsampling is
performed.


</description>
<parameters>
<parameter name="method">
<parameter_description> a #GstVideoChromaMethod
</parameter_description>
</parameter>
<parameter name="site">
<parameter_description> a #GstVideoChromaSite
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstVideoChromaFlags
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the #GstVideoFormat
</parameter_description>
</parameter>
<parameter name="h_factor">
<parameter_description> horizontal resampling factor
</parameter_description>
</parameter>
<parameter name="v_factor">
<parameter_description> vertical resampling factor
</parameter_description>
</parameter>
</parameters>
<return> a new #GstVideoChromaResample that should be freed with
gst_video_chroma_resample_free() after usage.
</return>
</function>

<function name="gst_video_chroma_to_string">
<description>
Converts @site to its string representation.


</description>
<parameters>
<parameter name="site">
<parameter_description> a #GstVideoChromaSite
</parameter_description>
</parameter>
</parameters>
<return> a string describing @site.
</return>
</function>

<function name="gst_video_codec_frame_get_user_data">
<description>
Gets private data set on the frame by the subclass via
gst_video_codec_frame_set_user_data() previously.


</description>
<parameters>
<parameter name="frame">
<parameter_description> a #GstVideoCodecFrame
</parameter_description>
</parameter>
</parameters>
<return> The previously set user_data
</return>
</function>

<function name="gst_video_codec_frame_ref">
<description>
Increases the refcount of the given frame by one.


</description>
<parameters>
<parameter name="frame">
<parameter_description> a #GstVideoCodecFrame
</parameter_description>
</parameter>
</parameters>
<return> @buf
</return>
</function>

<function name="gst_video_codec_frame_set_user_data">
<description>
Sets @user_data on the frame and the #GDestroyNotify that will be called when
the frame is freed. Allows to attach private data by the subclass to frames.

If a @user_data was previously set, then the previous set @notify will be called
before the @user_data is replaced.

</description>
<parameters>
<parameter name="frame">
<parameter_description> a #GstVideoCodecFrame
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> private data
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> a #GDestroyNotify
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_codec_frame_unref">
<description>
Decreases the refcount of the frame. If the refcount reaches 0, the frame
will be freed.

</description>
<parameters>
<parameter name="frame">
<parameter_description> a #GstVideoCodecFrame
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_codec_state_ref">
<description>
Increases the refcount of the given state by one.


</description>
<parameters>
<parameter name="state">
<parameter_description> a #GstVideoCodecState
</parameter_description>
</parameter>
</parameters>
<return> @buf
</return>
</function>

<function name="gst_video_codec_state_unref">
<description>
Decreases the refcount of the state. If the refcount reaches 0, the state
will be freed.

</description>
<parameters>
<parameter name="state">
<parameter_description> a #GstVideoCodecState
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_color_range_offsets">
<description>
Compute the offset and scale values for each component of @info. For each
component, (c[i] - offset[i]) / scale[i] will scale the component c[i] to the
range [0.0 .. 1.0].

The reverse operation (c[i] * scale[i]) + offset[i] can be used to convert
the component values in range [0.0 .. 1.0] back to their representation in
@info and @range.

</description>
<parameters>
<parameter name="range">
<parameter_description> a #GstVideoColorRange
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstVideoFormatInfo
</parameter_description>
</parameter>
<parameter name="offsets">
<parameter_description> output offsets
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> output scale
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_colorimetry_from_string">
<description>
Parse the colorimetry string and update @cinfo with the parsed
values.


</description>
<parameters>
<parameter name="cinfo">
<parameter_description> a #GstVideoColorimetry
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> a colorimetry string
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if @color points to valid colorimetry info.
</return>
</function>

<function name="gst_video_colorimetry_matches">
<description>
Check if the colorimetry information in @info matches that of the
string @color.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> a colorimetry string
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if @color conveys the same colorimetry info as the color
information in @info.
</return>
</function>

<function name="gst_video_colorimetry_to_string">
<description>
Make a string representation of @cinfo.


</description>
<parameters>
<parameter name="cinfo">
<parameter_description> a #GstVideoColorimetry
</parameter_description>
</parameter>
</parameters>
<return> a string representation of @cinfo.
</return>
</function>

<function name="gst_video_convert_sample">
<description>
Converts a raw video buffer into the specified output caps.

The output caps can be any raw video formats or any image formats (jpeg, png, ...).

The width, height and pixel-aspect-ratio can also be specified in the output caps.


</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
<parameter name="to_caps">
<parameter_description> the #GstCaps to convert to
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> the maximum amount of time allowed for the processing.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> pointer to a #GError. Can be %NULL.
</parameter_description>
</parameter>
</parameters>
<return> The converted #GstSample, or %NULL if an error happened (in which case @err
will point to the #GError).
</return>
</function>

<function name="gst_video_convert_sample_async">
<description>
Converts a raw video buffer into the specified output caps.

The output caps can be any raw video formats or any image formats (jpeg, png, ...).

The width, height and pixel-aspect-ratio can also be specified in the output caps.

@callback will be called after conversion, when an error occured or if conversion didn't
finish after @timeout. @callback will always be called from the thread default
%GMainContext, see g_main_context_get_thread_default(). If GLib before 2.22 is used,
this will always be the global default main context.

@destroy_notify will be called after the callback was called and @user_data is not needed
anymore.

</description>
<parameters>
<parameter name="sample">
<parameter_description> a #GstSample
</parameter_description>
</parameter>
<parameter name="to_caps">
<parameter_description> the #GstCaps to convert to
</parameter_description>
</parameter>
<parameter name="timeout">
<parameter_description> the maximum amount of time allowed for the processing.
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> %GstVideoConvertSampleCallback that will be called after conversion.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> extra data that will be passed to the @callback
</parameter_description>
</parameter>
<parameter name="destroy_notify">
<parameter_description> %GDestroyNotify to be called after @user_data is not needed anymore
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_add_to_frame">
<description>
Removes next @n_bytes of input data and adds it to currently parsed frame.

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="n_bytes">
<parameter_description> the number of bytes to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_allocate_output_buffer">
<description>
Helper function that allocates a buffer to hold a video frame for @decoder's
current #GstVideoCodecState.

You should use gst_video_decoder_allocate_output_frame() instead of this
function, if possible at all.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> allocated buffer, or NULL if no buffer could be
allocated (e.g. when downstream is flushing or shutting down)
</return>
</function>

<function name="gst_video_decoder_allocate_output_frame">
<description>
Helper function that allocates a buffer to hold a video frame for @decoder's
current #GstVideoCodecState.  Subclass should already have configured video
state and set src pad caps.

The buffer allocated here is owned by the frame and you should only
keep references to the frame, not the buffer.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> a #GstVideoCodecFrame
</parameter_description>
</parameter>
</parameters>
<return> %GST_FLOW_OK if an output buffer could be allocated
</return>
</function>

<function name="gst_video_decoder_drop_frame">
<description>
Similar to gst_video_decoder_finish_frame(), but drops @frame in any
case and posts a QoS message with the frame's details on the bus.
In any case, the frame is considered finished and released.


</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> the #GstVideoCodecFrame to drop
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn, usually GST_FLOW_OK.
</return>
</function>

<function name="gst_video_decoder_finish_frame">
<description>
@frame should have a valid decoded data buffer, whose metadata fields
are then appropriately set according to frame data and pushed downstream.
If no output data is provided, @frame is considered skipped.
In any case, the frame is considered finished and released.

After calling this function the output buffer of the frame is to be
considered read-only. This function will also change the metadata
of the buffer.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> a decoded #GstVideoCodecFrame
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn resulting from sending data downstream
</return>
</function>

<function name="gst_video_decoder_get_allocator">
<description>
Lets #GstVideoDecoder sub-classes to know the memory @allocator
used by the base class and its @params.

Unref the @allocator after use it.

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the #GstAllocator
used
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> the
#GstAllocatorParams of @allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_get_buffer_pool">
<description>

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> the instance of the #GstBufferPool used
by the decoder; free it after use it
</return>
</function>

<function name="gst_video_decoder_get_estimate_rate">
<description>

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured byte to time conversion setting
</return>
</function>

<function name="gst_video_decoder_get_frame">
<description>
Get a pending unfinished #GstVideoCodecFrame


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="frame_number">
<parameter_description> system_frame_number of a frame
</parameter_description>
</parameter>
</parameters>
<return> pending unfinished #GstVideoCodecFrame identified by @frame_number.
</return>
</function>

<function name="gst_video_decoder_get_frames">
<description>
Get all pending unfinished #GstVideoCodecFrame


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> pending unfinished #GstVideoCodecFrame.
</return>
</function>

<function name="gst_video_decoder_get_latency">
<description>
Query the configured decoder latency. Results will be returned via
@min_latency and @max_latency.

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> address of variable in which to store the
configured minimum latency, or %NULL
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> address of variable in which to store the
configured mximum latency, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_get_max_decode_time">
<description>
Determines maximum possible decoding time for @frame that will
allow it to decode and arrive in time (as determined by QoS events).
In particular, a negative result means decoding in time is no longer possible
and should therefore occur as soon/skippy as possible.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> a #GstVideoCodecFrame
</parameter_description>
</parameter>
</parameters>
<return> max decoding time.
</return>
</function>

<function name="gst_video_decoder_get_max_errors">
<description>

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> currently configured decoder tolerated error count.
</return>
</function>

<function name="gst_video_decoder_get_oldest_frame">
<description>
Get the oldest pending unfinished #GstVideoCodecFrame


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> oldest pending unfinished #GstVideoCodecFrame.
</return>
</function>

<function name="gst_video_decoder_get_output_state">
<description>
Get the #GstVideoCodecState currently describing the output stream.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> #GstVideoCodecState describing format of video data.
</return>
</function>

<function name="gst_video_decoder_get_packetized">
<description>
Queries whether input data is considered packetized or not by the
base class.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> TRUE if input data is considered packetized.
</return>
</function>

<function name="gst_video_decoder_get_qos_proportion">
<description>

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
current QoS proportion, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> The current QoS proportion.

</return>
</function>

<function name="gst_video_decoder_have_frame">
<description>
Gathers all data collected for currently parsed frame, gathers corresponding
metadata and passes it along for further processing, i.e. @handle_frame.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn
</return>
</function>

<function name="gst_video_decoder_merge_tags">
<description>
Adds tags to so-called pending tags, which will be processed
before pushing out data downstream.

Note that this is provided for convenience, and the subclass is
not required to use this and can still do tag handling on its own.

MT safe.

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> a #GstTagList to merge
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the #GstTagMergeMode to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_negotiate">
<description>
Negotiate with downstreame elements to currently configured #GstVideoCodecState.


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the negotiation succeeded, else #FALSE.
</return>
</function>

<function name="gst_video_decoder_set_estimate_rate">
<description>
Allows baseclass to perform byte to time estimated conversion.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> whether to enable byte to time conversion
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_set_latency">
<description>
Lets #GstVideoDecoder sub-classes tell the baseclass what the decoder
latency is. Will also post a LATENCY message on the bus so the pipeline
can reconfigure its global latency.

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> minimum latency
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> maximum latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_set_max_errors">
<description>
Sets numbers of tolerated decoder errors, where a tolerated one is then only
warned about, but more than tolerated will lead to fatal error.  Default
is set to GST_VIDEO_DECODER_MAX_ERRORS.

</description>
<parameters>
<parameter name="dec">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> max tolerated errors
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_decoder_set_output_state">
<description>
Creates a new #GstVideoCodecState with the specified @fmt, @width and @height
as the output state for the decoder.
Any previously set output state on @decoder will be replaced by the newly
created one.

If the subclass wishes to copy over existing fields (like pixel aspec ratio,
or framerate) from an existing #GstVideoCodecState, it can be provided as a
@reference.

If the subclass wishes to override some fields from the output state (like
pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.

The new output state will only take effect (set on pads and buffers) starting
from the next call to #gst_video_decoder_finish_frame().


</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="fmt">
<parameter_description> a #GstVideoFormat
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> The width in pixels
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> The height in pixels
</parameter_description>
</parameter>
<parameter name="reference">
<parameter_description> An optional reference #GstVideoCodecState
</parameter_description>
</parameter>
</parameters>
<return> the newly configured output state.
</return>
</function>

<function name="gst_video_decoder_set_packetized">
<description>
Allows baseclass to consider input data as packetized or not. If the
input is packetized, then the @parse method will not be called.

</description>
<parameters>
<parameter name="decoder">
<parameter_description> a #GstVideoDecoder
</parameter_description>
</parameter>
<parameter name="packetized">
<parameter_description> whether the input data should be considered as packetized.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_encoder_allocate_output_buffer">
<description>
Helper function that allocates a buffer to hold an encoded video frame
for @encoder's current #GstVideoCodecState.


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of the buffer
</parameter_description>
</parameter>
</parameters>
<return> allocated buffer
</return>
</function>

<function name="gst_video_encoder_allocate_output_frame">
<description>
Helper function that allocates a buffer to hold an encoded video frame for @encoder's
current #GstVideoCodecState.  Subclass should already have configured video
state and set src pad caps.

The buffer allocated here is owned by the frame and you should only
keep references to the frame, not the buffer.


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> a #GstVideoCodecFrame
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of the buffer
</parameter_description>
</parameter>
</parameters>
<return> %GST_FLOW_OK if an output buffer could be allocated
</return>
</function>

<function name="gst_video_encoder_finish_frame">
<description>
@frame must have a valid encoded data buffer, whose metadata fields
are then appropriately set according to frame data or no buffer at
all if the frame should be dropped.
It is subsequently pushed downstream or provided to @pre_push.
In any case, the frame is considered finished and released.

After calling this function the output buffer of the frame is to be
considered read-only. This function will also change the metadata
of the buffer.


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="frame">
<parameter_description> an encoded #GstVideoCodecFrame 
</parameter_description>
</parameter>
</parameters>
<return> a #GstFlowReturn resulting from sending data downstream
</return>
</function>

<function name="gst_video_encoder_get_allocator">
<description>
Lets #GstVideoEncoder sub-classes to know the memory @allocator
used by the base class and its @params.

Unref the @allocator after use it.

</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="allocator">
<parameter_description> the #GstAllocator
used
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> the
#GstAllocatorParams of @allocator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_encoder_get_frame">
<description>
Get a pending unfinished #GstVideoCodecFrame


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEnccoder
</parameter_description>
</parameter>
<parameter name="frame_number">
<parameter_description> system_frame_number of a frame
</parameter_description>
</parameter>
</parameters>
<return> pending unfinished #GstVideoCodecFrame identified by @frame_number.
</return>
</function>

<function name="gst_video_encoder_get_frames">
<description>
Get all pending unfinished #GstVideoCodecFrame


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
</parameters>
<return> pending unfinished #GstVideoCodecFrame.
</return>
</function>

<function name="gst_video_encoder_get_latency">
<description>
Query the configured encoding latency. Results will be returned via
@min_latency and @max_latency.

</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> address of variable in which to store the
configured minimum latency, or %NULL
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> address of variable in which to store the
configured maximum latency, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_encoder_get_oldest_frame">
<description>
Get the oldest unfinished pending #GstVideoCodecFrame


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
</parameters>
<return> oldest unfinished pending #GstVideoCodecFrame
</return>
</function>

<function name="gst_video_encoder_get_output_state">
<description>
Get the current #GstVideoCodecState


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
</parameters>
<return> #GstVideoCodecState describing format of video data.
</return>
</function>

<function name="gst_video_encoder_merge_tags">
<description>
Adds tags to so-called pending tags, which will be processed
before pushing out data downstream.

Note that this is provided for convenience, and the subclass is
not required to use this and can still do tag handling on its own.

MT safe.

</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="tags">
<parameter_description> a #GstTagList to merge
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the #GstTagMergeMode to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_encoder_negotiate">
<description>
Negotiate with downstream elements to currently configured #GstVideoCodecState.


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if the negotiation succeeded, else #FALSE.
</return>
</function>

<function name="gst_video_encoder_proxy_getcaps">
<description>
Returns caps that express @caps (or sink template caps if @caps == NULL)
restricted to resolution/format/... combinations supported by downstream
elements (e.g. muxers).


</description>
<parameters>
<parameter name="enc">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> initial caps
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> filter caps
</parameter_description>
</parameter>
</parameters>
<return> a #GstCaps owned by caller
</return>
</function>

<function name="gst_video_encoder_set_headers">
<description>
Set the codec headers to be sent downstream whenever requested.

</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="headers">
<parameter_description> a list of #GstBuffer containing the codec header
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_encoder_set_latency">
<description>
Informs baseclass of encoding latency.

</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="min_latency">
<parameter_description> minimum latency
</parameter_description>
</parameter>
<parameter name="max_latency">
<parameter_description> maximum latency
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_encoder_set_output_state">
<description>
Creates a new #GstVideoCodecState with the specified caps as the output state
for the encoder.
Any previously set output state on @encoder will be replaced by the newly
created one.

The specified @caps should not contain any resolution, pixel-aspect-ratio,
framerate, codec-data, .... Those should be specified instead in the returned
#GstVideoCodecState.

If the subclass wishes to copy over existing fields (like pixel aspect ratio,
or framerate) from an existing #GstVideoCodecState, it can be provided as a
@reference.

If the subclass wishes to override some fields from the output state (like
pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.

The new output state will only take effect (set on pads and buffers) starting
from the next call to #gst_video_encoder_finish_frame().


</description>
<parameters>
<parameter name="encoder">
<parameter_description> a #GstVideoEncoder
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> the #GstCaps to use for the output
</parameter_description>
</parameter>
<parameter name="reference">
<parameter_description> An optional reference @GstVideoCodecState
</parameter_description>
</parameter>
</parameters>
<return> the newly configured output state.
</return>
</function>

<function name="gst_video_event_is_force_key_unit">
<description>
Checks if an event is a force key unit event. Returns true for both upstream
and downstream force key unit events.


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event is a valid force key unit event
</return>
</function>

<function name="gst_video_event_new_downstream_force_key_unit">
<description>
Creates a new downstream force key unit event. A downstream force key unit
event can be sent down the pipeline to request downstream elements to produce
a key unit. A downstream force key unit event must also be sent when handling
an upstream force key unit event to notify downstream that the latter has been
handled.

To parse an event created by gst_video_event_new_downstream_force_key_unit() use
gst_video_event_parse_downstream_force_key_unit().


</description>
<parameters>
<parameter name="timestamp">
<parameter_description> the timestamp of the buffer that starts a new key unit
</parameter_description>
</parameter>
<parameter name="stream_time">
<parameter_description> the stream_time of the buffer that starts a new key unit
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> the running_time of the buffer that starts a new key unit
</parameter_description>
</parameter>
<parameter name="all_headers">
<parameter_description> %TRUE to produce headers when starting a new key unit
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> integer that can be used to number key units
</parameter_description>
</parameter>
</parameters>
<return> The new GstEvent
</return>
</function>

<function name="gst_video_event_new_still_frame">
<description>
Creates a new Still Frame event. If @in_still is %TRUE, then the event
represents the start of a still frame sequence. If it is %FALSE, then
the event ends a still frame sequence.

To parse an event created by gst_video_event_new_still_frame() use
gst_video_event_parse_still_frame().


</description>
<parameters>
<parameter name="in_still">
<parameter_description> boolean value for the still-frame state of the event.
</parameter_description>
</parameter>
</parameters>
<return> The new GstEvent
</return>
</function>

<function name="gst_video_event_new_upstream_force_key_unit">
<description>
Creates a new upstream force key unit event. An upstream force key unit event
can be sent to request upstream elements to produce a key unit. 

@running_time can be set to request a new key unit at a specific
running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
new key unit as soon as possible.

To parse an event created by gst_video_event_new_downstream_force_key_unit() use
gst_video_event_parse_downstream_force_key_unit().


</description>
<parameters>
<parameter name="running_time">
<parameter_description> the running_time at which a new key unit should be produced
</parameter_description>
</parameter>
<parameter name="all_headers">
<parameter_description> %TRUE to produce headers when starting a new key unit
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> integer that can be used to number key units
</parameter_description>
</parameter>
</parameters>
<return> The new GstEvent
</return>
</function>

<function name="gst_video_event_parse_downstream_force_key_unit">
<description>
Get timestamp, stream-time, running-time, all-headers and count in the force
key unit event. See gst_video_event_new_downstream_force_key_unit() for a
full description of the downstream force key unit event.


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to parse
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> A pointer to the timestamp in the event
</parameter_description>
</parameter>
<parameter name="stream_time">
<parameter_description> A pointer to the stream-time in the event
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> A pointer to the running-time in the event
</parameter_description>
</parameter>
<parameter name="all_headers">
<parameter_description> A pointer to the all_headers flag in the event
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> A pointer to the count field of the event
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event is a valid downstream force key unit event.
</return>
</function>

<function name="gst_video_event_parse_still_frame">
<description>
Parse a #GstEvent, identify if it is a Still Frame event, and
return the still-frame state from the event if it is.
If the event represents the start of a still frame, the in_still
variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
in_still variable order to just check whether the event is a valid still-frame
event.

Create a still frame event using gst_video_event_new_still_frame()


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to parse
</parameter_description>
</parameter>
<parameter name="in_still">
<parameter_description> A boolean to receive the still-frame status from the event, or NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event is a valid still-frame event. %FALSE if not
</return>
</function>

<function name="gst_video_event_parse_upstream_force_key_unit">
<description>
Get running-time, all-headers and count in the force key unit event. See
gst_video_event_new_upstream_force_key_unit() for a full description of the
upstream force key unit event.

Create an upstream force key unit event using  gst_video_event_new_upstream_force_key_unit()


</description>
<parameters>
<parameter name="event">
<parameter_description> A #GstEvent to parse
</parameter_description>
</parameter>
<parameter name="running_time">
<parameter_description> A pointer to the running_time in the event
</parameter_description>
</parameter>
<parameter name="all_headers">
<parameter_description> A pointer to the all_headers flag in the event
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> A pointer to the count field in the event
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event is a valid upstream force-key-unit event. %FALSE if not
</return>
</function>

<function name="gst_video_format_from_fourcc">
<description>
Converts a FOURCC value into the corresponding #GstVideoFormat.
If the FOURCC cannot be represented by #GstVideoFormat,
#GST_VIDEO_FORMAT_UNKNOWN is returned.


</description>
<parameters>
<parameter name="fourcc">
<parameter_description> a FOURCC value representing raw YUV video
</parameter_description>
</parameter>
</parameters>
<return> the #GstVideoFormat describing the FOURCC value
</return>
</function>

<function name="gst_video_format_from_masks">
<description>
Find the #GstVideoFormat for the given parameters.


</description>
<parameters>
<parameter name="depth">
<parameter_description> the amount of bits used for a pixel
</parameter_description>
</parameter>
<parameter name="bpp">
<parameter_description> the amount of bits used to store a pixel. This value is bigger than
@depth
</parameter_description>
</parameter>
<parameter name="endianness">
<parameter_description> the endianness of the masks, #G_LITTLE_ENDIAN or #G_BIG_ENDIAN
</parameter_description>
</parameter>
<parameter name="red_mask">
<parameter_description> the red mask
</parameter_description>
</parameter>
<parameter name="green_mask">
<parameter_description> the green mask
</parameter_description>
</parameter>
<parameter name="blue_mask">
<parameter_description> the blue mask
</parameter_description>
</parameter>
<parameter name="alpha_mask">
<parameter_description> the alpha mask, or 0 if no alpha mask
</parameter_description>
</parameter>
</parameters>
<return> a #GstVideoFormat or GST_VIDEO_FORMAT_UNKNOWN when the parameters to
not specify a known format.
</return>
</function>

<function name="gst_video_format_from_string">
<description>
Convert the @format string to its #GstVideoFormat.


</description>
<parameters>
<parameter name="format">
<parameter_description> a format string
</parameter_description>
</parameter>
</parameters>
<return> the #GstVideoFormat for @format or GST_VIDEO_FORMAT_UNKNOWN when the
string is not a known format.
</return>
</function>

<function name="gst_video_format_get_info">
<description>
Get the #GstVideoFormatInfo for @format


</description>
<parameters>
<parameter name="format">
<parameter_description> a #GstVideoFormat
</parameter_description>
</parameter>
</parameters>
<return> The #GstVideoFormatInfo for @format.
</return>
</function>

<function name="gst_video_format_get_palette">
<description>
Get the default palette of @format. This the palette used in the pack
function for paletted formats.


</description>
<parameters>
<parameter name="format">
<parameter_description> a #GstVideoFormat
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> size of the palette in bytes
</parameter_description>
</parameter>
</parameters>
<return> the default palette of @format or %NULL when @format does not have a
palette.

</return>
</function>

<function name="gst_video_format_to_fourcc">
<description>
Converts a #GstVideoFormat value into the corresponding FOURCC.  Only
a few YUV formats have corresponding FOURCC values.  If @format has
no corresponding FOURCC value, 0 is returned.


</description>
<parameters>
<parameter name="format">
<parameter_description> a #GstVideoFormat video format
</parameter_description>
</parameter>
</parameters>
<return> the FOURCC corresponding to @format
</return>
</function>

<function name="gst_video_frame_copy">
<description>
Copy the contents from @src to @dest.


</description>
<parameters>
<parameter name="dest">
<parameter_description> a #GstVideoFrame
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> a #GstVideoFrame
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the contents could be copied.
</return>
</function>

<function name="gst_video_frame_copy_plane">
<description>
Copy the plane with index @plane from @src to @dest.


</description>
<parameters>
<parameter name="dest">
<parameter_description> a #GstVideoFrame
</parameter_description>
</parameter>
<parameter name="src">
<parameter_description> a #GstVideoFrame
</parameter_description>
</parameter>
<parameter name="plane">
<parameter_description> a plane
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the contents could be copied.
</return>
</function>

<function name="gst_video_frame_map">
<description>
Use @info and @buffer to fill in the values of @frame.

All video planes of @buffer will be mapped and the pointers will be set in
@frame-&gt;data.


</description>
<parameters>
<parameter name="frame">
<parameter_description> pointer to #GstVideoFrame
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the buffer to map
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstMapFlags
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_video_frame_map_id">
<description>
Use @info and @buffer to fill in the values of @frame with the video frame
information of frame @id.

When @id is -1, the default frame is mapped. When @id != -1, this function
will return %FALSE when there is no GstVideoMeta with that id.

All video planes of @buffer will be mapped and the pointers will be set in
@frame-&gt;data.


</description>
<parameters>
<parameter name="frame">
<parameter_description> pointer to #GstVideoFrame
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the buffer to map
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the frame id to map
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> #GstMapFlags
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gst_video_frame_unmap">
<description>
Unmap the memory previously mapped with gst_video_frame_map.

</description>
<parameters>
<parameter name="frame">
<parameter_description> a #GstVideoFrame
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_gl_texture_upload_meta_upload">
<description>
Uploads the buffer which owns the meta to a specific texture ID.


</description>
<parameters>
<parameter name="meta">
<parameter_description> a #GstVideoGLTextureUploadMeta
</parameter_description>
</parameter>
<parameter name="texture_id">
<parameter_description> the texture IDs to upload to
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if uploading succeeded, %FALSE otherwise.
</return>
</function>

<function name="gst_video_info_align">
<description>
Adjust the offset and stride fields in @info so that the padding and
stride alignment in @align is respected.

Extra padding will be added to the right side when stride alignment padding
is required and @align will be updated with the new padding values.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> alignment parameters
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_info_convert">
<description>
Converts among various #GstFormat types.  This function handles
GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
raw video, GST_FORMAT_DEFAULT corresponds to video frames.  This
function can be used to handle pad queries of the type GST_QUERY_CONVERT.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="src_format">
<parameter_description> #GstFormat of the @src_value
</parameter_description>
</parameter>
<parameter name="src_value">
<parameter_description> value to convert
</parameter_description>
</parameter>
<parameter name="dest_format">
<parameter_description> #GstFormat of the @dest_value
</parameter_description>
</parameter>
<parameter name="dest_value">
<parameter_description> pointer to destination value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the conversion was successful.
</return>
</function>

<function name="gst_video_info_from_caps">
<description>
Parse @caps and update @info.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="caps">
<parameter_description> a #GstCaps
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @caps could be parsed
</return>
</function>

<function name="gst_video_info_init">
<description>
Initialize @info with default values.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_info_is_equal">
<description>
Compares two #GstVideoInfo and returns whether they are equal or not


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @info and @other are equal, else %FALSE.
</return>
</function>

<function name="gst_video_info_set_format">
<description>
Set the default info for a video frame of @format and @width and @height.

</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> a width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> a height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_info_to_caps">
<description>
Convert the values of @info into a #GstCaps.


</description>
<parameters>
<parameter name="info">
<parameter_description> a #GstVideoInfo
</parameter_description>
</parameter>
</parameters>
<return> a new #GstCaps containing the info of @info.
</return>
</function>

<function name="gst_video_meta_map">
<description>
Map the video plane with index @plane in @meta and return a pointer to the
first byte of the plane and the stride of the plane.


</description>
<parameters>
<parameter name="meta">
<parameter_description> a #GstVideoMeta
</parameter_description>
</parameter>
<parameter name="plane">
<parameter_description> a plane
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstMapInfo
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data of @plane
</parameter_description>
</parameter>
<parameter name="stride">
<parameter_description> the stride of @plane
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> @GstMapFlags
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the map operation was successful.
</return>
</function>

<function name="gst_video_meta_transform_scale">
<description>
GQuark for the video &quot;gst-video-scale&quot; transform.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gst_video_meta_transform_scale_get_quark">
<description>
Get the #GQuark for the &quot;gst-video-scale&quot; metadata transform operation.


</description>
<parameters>
</parameters>
<return> a #GQuark
</return>
</function>

<function name="gst_video_meta_unmap">
<description>
Unmap a previously mapped plane with gst_video_meta_map().


</description>
<parameters>
<parameter name="meta">
<parameter_description> a #GstVideoMeta
</parameter_description>
</parameter>
<parameter name="plane">
<parameter_description> a plane
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> a #GstMapInfo
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the memory was successfully unmapped.
</return>
</function>

<function name="gst_video_orientation_get_hcenter">
<description>
Get the horizontal centering offset from the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> return location for the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports centering
</return>
</function>

<function name="gst_video_orientation_get_hflip">
<description>
Get the horizontal flipping state (%TRUE for flipped) from the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="flip">
<parameter_description> return location for the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports flipping
</return>
</function>

<function name="gst_video_orientation_get_vcenter">
<description>
Get the vertical centering offset from the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> return location for the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports centering
</return>
</function>

<function name="gst_video_orientation_get_vflip">
<description>
Get the vertical flipping state (%TRUE for flipped) from the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="flip">
<parameter_description> return location for the result
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports flipping
</return>
</function>

<function name="gst_video_orientation_set_hcenter">
<description>
Set the horizontal centering offset for the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> centering offset
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports centering
</return>
</function>

<function name="gst_video_orientation_set_hflip">
<description>
Set the horizontal flipping state (%TRUE for flipped) for the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="flip">
<parameter_description> use flipping
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports flipping
</return>
</function>

<function name="gst_video_orientation_set_vcenter">
<description>
Set the vertical centering offset for the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> centering offset
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports centering
</return>
</function>

<function name="gst_video_orientation_set_vflip">
<description>
Set the vertical flipping state (%TRUE for flipped) for the given object.

</description>
<parameters>
<parameter name="video_orientation">
<parameter_description> #GstVideoOrientation interface of a #GstElement
</parameter_description>
</parameter>
<parameter name="flip">
<parameter_description> use flipping
</parameter_description>
</parameter>
</parameters>
<return> %TRUE in case the element supports flipping
</return>
</function>

<function name="gst_video_overlay_composition_add_rectangle">
<description>
Adds an overlay rectangle to an existing overlay composition object. This
must be done right after creating the overlay composition.

</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition
</parameter_description>
</parameter>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle to add to the
composition
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_composition_blend">
<description>
Blends the overlay rectangles in @comp on top of the raw video data
contained in @video_buf. The data in @video_buf must be writable and
mapped appropriately.

</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition
</parameter_description>
</parameter>
<parameter name="video_buf">
<parameter_description> a #GstVideoFrame containing raw video data in a supported format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_composition_copy">
<description>
Makes a copy of @comp and all contained rectangles, so that it is possible
to modify the composition and contained rectangles (e.g. add additional
rectangles or change the render co-ordinates or render dimension). The
actual overlay pixel data buffers contained in the rectangles are not
copied.


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition to copy
</parameter_description>
</parameter>
</parameters>
<return> a new #GstVideoOverlayComposition equivalent
to @comp.
</return>
</function>

<function name="gst_video_overlay_composition_get_rectangle">
<description>
Returns the @n-th #GstVideoOverlayRectangle contained in @comp.


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition
</parameter_description>
</parameter>
<parameter name="n">
<parameter_description> number of the rectangle to get
</parameter_description>
</parameter>
</parameters>
<return> the @n-th rectangle, or NULL if @n is out of
bounds. Will not return a new reference, the caller will need to
obtain her own reference using gst_video_overlay_rectangle_ref()
if needed.
</return>
</function>

<function name="gst_video_overlay_composition_get_seqnum">
<description>
Returns the sequence number of this composition. Sequence numbers are
monotonically increasing and unique for overlay compositions and rectangles
(meaning there will never be a rectangle with the same sequence number as
a composition).


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition
</parameter_description>
</parameter>
</parameters>
<return> the sequence number of @comp
</return>
</function>

<function name="gst_video_overlay_composition_make_writable">
<description>
Takes ownership of @comp and returns a version of @comp that is writable
(i.e. can be modified). Will either return @comp right away, or create a
new writable copy of @comp and unref @comp itself. All the contained
rectangles will also be copied, but the actual overlay pixel data buffers
contained in the rectangles are not copied.


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition to copy
</parameter_description>
</parameter>
</parameters>
<return> a writable #GstVideoOverlayComposition
equivalent to @comp.
</return>
</function>

<function name="gst_video_overlay_composition_n_rectangles">
<description>
Returns the number of #GstVideoOverlayRectangle&lt;!-- --&gt;s contained in @comp.


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition
</parameter_description>
</parameter>
</parameters>
<return> the number of rectangles
</return>
</function>

<function name="gst_video_overlay_composition_new">
<description>
Creates a new video overlay composition object to hold one or more
overlay rectangles.


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle to add to the
composition
</parameter_description>
</parameter>
</parameters>
<return> a new #GstVideoOverlayComposition. Unref with
gst_video_overlay_composition_unref() when no longer needed.
</return>
</function>

<function name="gst_video_overlay_composition_ref">
<description>
Increases the refcount of the given composition by one.

Note that the refcount affects the writeability
of @comp, use gst_video_overlay_composition_make_writable() to ensure
a composition and its rectangles can be modified.


</description>
<parameters>
<parameter name="comp">
<parameter_description> a a #GstVideoOverlayComposition.
</parameter_description>
</parameter>
</parameters>
<return> @comp
</return>
</function>

<function name="gst_video_overlay_composition_unref">
<description>
Decreases the refcount of the composition. If the refcount reaches 0, the
composition will be freed.

</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayComposition.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_expose">
<description>
Tell an overlay that it has been exposed. This will redraw the current frame
in the drawable even if the pipeline is PAUSED.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a #GstVideoOverlay to expose.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_got_window_handle">
<description>
This will post a &quot;have-window-handle&quot; element message on the bus.

This function should only be used by video overlay plugin developers.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a #GstVideoOverlay which got a window
</parameter_description>
</parameter>
<parameter name="handle">
<parameter_description> a platform-specific handle referencing the window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_handle_events">
<description>
Tell an overlay that it should handle events from the window system. These
events are forwarded upstream as navigation events. In some window system,
events are not propagated in the window hierarchy if a client is listening
for them. This method allows you to disable events handling completely
from the #GstVideoOverlay.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a #GstVideoOverlay to expose.
</parameter_description>
</parameter>
<parameter name="handle_events">
<parameter_description> a #gboolean indicating if events should be handled or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_prepare_window_handle">
<description>
This will post a &quot;prepare-window-handle&quot; element message on the bus
to give applications an opportunity to call
gst_video_overlay_set_window_handle() before a plugin creates its own
window.

This function should only be used by video overlay plugin developers.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a #GstVideoOverlay which does not yet have an Window handle set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_rectangle_copy">
<description>
Makes a copy of @rectangle, so that it is possible to modify it
(e.g. to change the render co-ordinates or render dimension). The
actual overlay pixel data buffers contained in the rectangle are not
copied.


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle to copy
</parameter_description>
</parameter>
</parameters>
<return> a new #GstVideoOverlayRectangle equivalent
to @rectangle.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_flags">
<description>
Retrieves the flags associated with a #GstVideoOverlayRectangle.
This is useful if the caller can handle both premultiplied alpha and
non premultiplied alpha, for example. By knowing whether the rectangle
uses premultiplied or not, it can request the pixel data in the format
it is stored in, to avoid unnecessary conversion.


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
</parameters>
<return> the #GstVideoOverlayFormatFlags associated with the rectangle.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_global_alpha">
<description>
Retrieves the global-alpha value associated with a #GstVideoOverlayRectangle.


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
</parameters>
<return> the global-alpha value associated with the rectangle.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_pixels_argb">
<description>

</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags
If a global_alpha value != 1 is set for the rectangle, the caller
should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
if he wants to apply global-alpha himself. If the flag is not set
global_alpha is applied internally before returning the pixel-data.
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer holding the ARGB pixel data with
width and height of the render dimensions as per
gst_video_overlay_rectangle_get_render_rectangle(). This function does
not return a reference, the caller should obtain a reference of her own
with gst_buffer_ref() if needed.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_pixels_ayuv">
<description>

</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags
If a global_alpha value != 1 is set for the rectangle, the caller
should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
if he wants to apply global-alpha himself. If the flag is not set
global_alpha is applied internally before returning the pixel-data.
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer holding the AYUV pixel data with
width and height of the render dimensions as per
gst_video_overlay_rectangle_get_render_rectangle(). This function does
not return a reference, the caller should obtain a reference of her own
with gst_buffer_ref() if needed.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_pixels_raw">
<description>

</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags
If a global_alpha value != 1 is set for the rectangle, the caller
should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
if he wants to apply global-alpha himself. If the flag is not set
global_alpha is applied internally before returning the pixel-data.
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer holding the pixel data with
format as originally provided and specified in video meta with
width and height of the render dimensions as per
gst_video_overlay_rectangle_get_render_rectangle(). This function does
not return a reference, the caller should obtain a reference of her own
with gst_buffer_ref() if needed.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_pixels_unscaled_argb">
<description>
Retrieves the pixel data as it is. This is useful if the caller can
do the scaling itself when handling the overlaying. The rectangle will
need to be scaled to the render dimensions, which can be retrieved using
gst_video_overlay_rectangle_get_render_rectangle().


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags.
If a global_alpha value != 1 is set for the rectangle, the caller
should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
if he wants to apply global-alpha himself. If the flag is not set
global_alpha is applied internally before returning the pixel-data.
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer holding the ARGB pixel data with
#GstVideoMeta set. This function does not return a reference, the caller
should obtain a reference of her own with gst_buffer_ref() if needed.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_pixels_unscaled_ayuv">
<description>
Retrieves the pixel data as it is. This is useful if the caller can
do the scaling itself when handling the overlaying. The rectangle will
need to be scaled to the render dimensions, which can be retrieved using
gst_video_overlay_rectangle_get_render_rectangle().


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags.
If a global_alpha value != 1 is set for the rectangle, the caller
should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
if he wants to apply global-alpha himself. If the flag is not set
global_alpha is applied internally before returning the pixel-data.
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer holding the AYUV pixel data with
#GstVideoMeta set. This function does not return a reference, the caller
should obtain a reference of her own with gst_buffer_ref() if needed.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_pixels_unscaled_raw">
<description>
Retrieves the pixel data as it is. This is useful if the caller can
do the scaling itself when handling the overlaying. The rectangle will
need to be scaled to the render dimensions, which can be retrieved using
gst_video_overlay_rectangle_get_render_rectangle().


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags.
If a global_alpha value != 1 is set for the rectangle, the caller
should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
if he wants to apply global-alpha himself. If the flag is not set
global_alpha is applied internally before returning the pixel-data.
</parameter_description>
</parameter>
</parameters>
<return> a #GstBuffer holding the pixel data with
#GstVideoMeta set. This function does not return a reference, the caller
should obtain a reference of her own with gst_buffer_ref() if needed.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_render_rectangle">
<description>
Retrieves the render position and render dimension of the overlay
rectangle on the video.


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="render_x">
<parameter_description> address where to store the X render offset
</parameter_description>
</parameter>
<parameter name="render_y">
<parameter_description> address where to store the Y render offset
</parameter_description>
</parameter>
<parameter name="render_width">
<parameter_description> address where to store the render width
</parameter_description>
</parameter>
<parameter name="render_height">
<parameter_description> address where to store the render height
</parameter_description>
</parameter>
</parameters>
<return> TRUE if valid render dimensions were retrieved.
</return>
</function>

<function name="gst_video_overlay_rectangle_get_seqnum">
<description>
Returns the sequence number of this rectangle. Sequence numbers are
monotonically increasing and unique for overlay compositions and rectangles
(meaning there will never be a rectangle with the same sequence number as
a composition).

Using the sequence number of a rectangle as an indicator for changed
pixel-data of a rectangle is dangereous. Some API calls, like e.g.
gst_video_overlay_rectangle_set_global_alpha(), automatically update
the per rectangle sequence number, which is misleading for renderers/
consumers, that handle global-alpha themselves. For them  the
pixel-data returned by gst_video_overlay_rectangle_get_pixels_*()
wont be different for different global-alpha values. In this case a
renderer could also use the GstBuffer pointers as a hint for changed
pixel-data.


</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
</parameters>
<return> the sequence number of @rectangle
</return>
</function>

<function name="gst_video_overlay_rectangle_new_raw">
<description>
Creates a new video overlay rectangle with ARGB or AYUV pixel data.
The layout in case of ARGB of the components in memory is B-G-R-A
on little-endian platforms
(corresponding to #GST_VIDEO_FORMAT_BGRA) and A-R-G-B on big-endian
platforms (corresponding to #GST_VIDEO_FORMAT_ARGB). In other words,
pixels are treated as 32-bit words and the lowest 8 bits then contain
the blue component value and the highest 8 bits contain the alpha
component value. Unless specified in the flags, the RGB values are
non-premultiplied. This is the format that is used by most hardware,
and also many rendering libraries such as Cairo, for example.
The pixel data buffer must have #GstVideoMeta set.


</description>
<parameters>
<parameter name="pixels">
<parameter_description> a #GstBuffer pointing to the pixel memory
</parameter_description>
</parameter>
<parameter name="render_x">
<parameter_description> the X co-ordinate on the video where the top-left corner of this
overlay rectangle should be rendered to
</parameter_description>
</parameter>
<parameter name="render_y">
<parameter_description> the Y co-ordinate on the video where the top-left corner of this
overlay rectangle should be rendered to
</parameter_description>
</parameter>
<parameter name="render_width">
<parameter_description> the render width of this rectangle on the video
</parameter_description>
</parameter>
<parameter name="render_height">
<parameter_description> the render height of this rectangle on the video
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags
</parameter_description>
</parameter>
</parameters>
<return> a new #GstVideoOverlayRectangle. Unref with
gst_video_overlay_rectangle_unref() when no longer needed.
</return>
</function>

<function name="gst_video_overlay_rectangle_ref">
<description>
Increases the refcount of the given rectangle by one.

Note that the refcount affects the writeability
of @comp, use gst_video_overlay_rectangle_copy() to ensure a rectangle can
be modified (there is no gst_video_overlay_rectangle_make_writable() because
it is unlikely that someone will hold the single reference to the rectangle
and not know that that's the case).


</description>
<parameters>
<parameter name="comp">
<parameter_description> a a #GstVideoOverlayRectangle.
</parameter_description>
</parameter>
</parameters>
<return> @comp
</return>
</function>

<function name="gst_video_overlay_rectangle_set_global_alpha">
<description>
Sets the global alpha value associated with a #GstVideoOverlayRectangle. Per-
pixel alpha values are multiplied with this value. Valid
values: 0 &lt;= global_alpha &lt;= 1; 1 to deactivate.

 # @rectangle must be writable, meaning its refcount must be 1. You can
make the rectangles inside a #GstVideoOverlayComposition writable using
gst_video_overlay_composition_make_writable() or
gst_video_overlay_composition_copy().

</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_rectangle_set_render_rectangle">
<description>
Sets the render position and dimensions of the rectangle on the video.
This function is mainly for elements that modify the size of the video
in some way (e.g. through scaling or cropping) and need to adjust the
details of any overlays to match the operation that changed the size.

@rectangle must be writable, meaning its refcount must be 1. You can
make the rectangles inside a #GstVideoOverlayComposition writable using
gst_video_overlay_composition_make_writable() or
gst_video_overlay_composition_copy().

</description>
<parameters>
<parameter name="rectangle">
<parameter_description> a #GstVideoOverlayRectangle
</parameter_description>
</parameter>
<parameter name="render_x">
<parameter_description> render X position of rectangle on video
</parameter_description>
</parameter>
<parameter name="render_y">
<parameter_description> render Y position of rectangle on video
</parameter_description>
</parameter>
<parameter name="render_width">
<parameter_description> render width of rectangle
</parameter_description>
</parameter>
<parameter name="render_height">
<parameter_description> render height of rectangle
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_rectangle_unref">
<description>
Decreases the refcount of the rectangle. If the refcount reaches 0, the
rectangle will be freed.

</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GstVideoOverlayRectangle.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_overlay_set_render_rectangle">
<description>
Configure a subregion as a video target within the window set by
gst_video_overlay_set_window_handle(). If this is not used or not supported
the video will fill the area of the window set as the overlay to 100%.
By specifying the rectangle, the video can be overlayed to a specific region
of that window only. After setting the new rectangle one should call
gst_video_overlay_expose() to force a redraw. To unset the region pass -1 for
the @width and @height parameters.

This method is needed for non fullscreen video overlay in UI toolkits that
do not support subwindows.


</description>
<parameters>
<parameter name="overlay">
<parameter_description> a #GstVideoOverlay
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the horizontal offset of the render area inside the window
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the vertical offset of the render area inside the window
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the render area inside the window
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the render area inside the window
</parameter_description>
</parameter>
</parameters>
<return> %FALSE if not supported by the sink.
</return>
</function>

<function name="gst_video_overlay_set_window_handle">
<description>
This will call the video overlay's set_window_handle method. You
should use this method to tell to an overlay to display video output to a
specific window (e.g. an XWindow on X11). Passing 0 as the  @handle will
tell the overlay to stop using that window and create an internal one.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a #GstVideoOverlay to set the window on.
</parameter_description>
</parameter>
<parameter name="handle">
<parameter_description> a handle referencing the window.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_video_sink_center_rect">
<description>
Takes @src rectangle and position it at the center of @dst rectangle with or
without @scaling. It handles clipping if the @src rectangle is bigger than
the @dst one and @scaling is set to FALSE.

</description>
<parameters>
<parameter name="src">
<parameter_description> the #GstVideoRectangle describing the source area
</parameter_description>
</parameter>
<parameter name="dst">
<parameter_description> the #GstVideoRectangle describing the destination area
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a pointer to a #GstVideoRectangle which will receive the result area
</parameter_description>
</parameter>
<parameter name="scaling">
<parameter_description> a #gboolean indicating if scaling should be applied or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gst_vorbis_tag_add">
<description>
Convenience function using gst_tag_from_vorbis_tag(), parsing
a vorbis comment string into the right type and adding it to the
given taglist @list.

Unknown vorbiscomment tags will be added to the tag list in form
of a #GST_TAG_EXTENDED_COMMENT.

</description>
<parameters>
<parameter name="list">
<parameter_description> a #GstTagList
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a vorbiscomment tag string (key in key=value), must be valid UTF-8
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a vorbiscomment value string (value in key=value), must be valid UTF-8
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="parse_encoding_profile">
<description>

</description>
<parameters>
<parameter name="in">
<parameter_description> a #GKeyFile
</parameter_description>
</parameter>
<parameter name="parentprofilename">
<parameter_description> the parent profile name (including 'profile-' or 'streamprofile-' header)
</parameter_description>
</parameter>
<parameter name="profilename">
<parameter_description> the profile name group to parse
</parameter_description>
</parameter>
<parameter name="nbgroups">
<parameter_description> the number of top-level groups
</parameter_description>
</parameter>
<parameter name="groups">
<parameter_description> the top-level groups
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="read_packet_header">
<description>
Read the packet headers for the packet pointed to by @packet.


</description>
<parameters>
<parameter name="packet">
<parameter_description> a packet
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @packet pointed to a valid header.
</return>
</function>

<function name="str_case_equal">
<description>
Compares @v1 and @v2 in a case-insensitive manner


</description>
<parameters>
<parameter name="v1">
<parameter_description> an ASCII string
</parameter_description>
</parameter>
<parameter name="v2">
<parameter_description> another ASCII string
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if they are equal (modulo case)
</return>
</function>

<function name="str_case_hash">
<description>
Hashes @key in a case-insensitive manner.


</description>
<parameters>
<parameter name="key">
<parameter_description> ASCII string to hash
</parameter_description>
</parameter>
</parameters>
<return> the hash code.
</return>
</function>

</root>
