Update GStreamer with latest master

List of files in sources/meson.build is now aphabetically ordered.
This commit is contained in:
Thibault Saunier 2019-02-25 11:33:39 -03:00
parent 06ad721f91
commit 9f1fac402e
96 changed files with 11493 additions and 1382 deletions

File diff suppressed because it is too large Load diff

View file

@ -1119,6 +1119,9 @@ buffers that the appsrc element will push to its source pad. Any
previous caps that were set on appsrc will be replaced by the caps
associated with the sample if not equal.
This function does not take ownership of the
sample so the sample 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.</doc>
<return-value transfer-ownership="none">
@ -1351,6 +1354,9 @@ buffers that the appsrc element will push to its source pad. Any
previous caps that were set on appsrc will be replaced by the caps
associated with the sample if not equal.
This function does not take ownership of the
sample so the sample 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.</doc>
<return-value transfer-ownership="none">

View file

@ -267,7 +267,7 @@ on its sink pads, based on the format expected downstream: in order
to enable that behaviour, the GType of the sink pads must either be
a (subclass of) #GstAudioAggregatorConvertPad to use the default
#GstAudioConverter implementation, or a subclass of #GstAudioAggregatorPad
implementing #GstAudioAggregatorPad.convert_buffer.
implementing #GstAudioAggregatorPadClass.convert_buffer.
To allow for the output caps to change, the mechanism is the same as
above, with the GType of the source pad.
@ -359,7 +359,6 @@ downstream specifies a range or a set of acceptable rates).</doc>
<type name="guint64" c:type="guint64"/>
</property>
<field name="parent">
<doc xml:space="preserve">The parent #GstAggregator</doc>
<type name="GstBase.Aggregator" c:type="GstAggregator"/>
</field>
<field name="current_caps">
@ -446,8 +445,7 @@ See #GstAudioAggregator for more details.</doc>
<property name="converter-config" writable="1" transfer-ownership="none">
<type name="Gst.Structure"/>
</property>
<field name="parent">
<doc xml:space="preserve">The parent #GstAudioAggregatorPad</doc>
<field name="parent" readable="0" private="1">
<type name="AudioAggregatorPad" c:type="GstAudioAggregatorPad"/>
</field>
<field name="priv" readable="0" private="1">
@ -515,7 +513,6 @@ See #GstAudioAggregator for more details.</doc>
</parameters>
</virtual-method>
<field name="parent">
<doc xml:space="preserve">The parent #GstAggregatorPad</doc>
<type name="GstBase.AggregatorPad" c:type="GstAggregatorPad"/>
</field>
<field name="info">
@ -1328,6 +1325,231 @@ drifts too much.</doc>
<doc xml:space="preserve">No adjustment is done.</doc>
</member>
</enumeration>
<record name="AudioBuffer" c:type="GstAudioBuffer" version="1.16">
<doc xml:space="preserve">A structure containing the result of an audio buffer map operation,
which is executed with gst_audio_buffer_map(). For non-interleaved (planar)
buffers, the beginning of each channel in the buffer has its own pointer in
the @planes array. For interleaved buffers, the @planes array only contains
one item, which is the pointer to the beginning of the buffer, and @n_planes
equals 1.
The different channels in @planes are always in the GStreamer channel order.</doc>
<field name="info" writable="1">
<doc xml:space="preserve">a #GstAudioInfo describing the audio properties of this buffer</doc>
<type name="AudioInfo" c:type="GstAudioInfo"/>
</field>
<field name="n_samples" writable="1">
<doc xml:space="preserve">the size of the buffer in samples</doc>
<type name="gsize" c:type="gsize"/>
</field>
<field name="n_planes" writable="1">
<doc xml:space="preserve">the number of planes available</doc>
<type name="gint" c:type="gint"/>
</field>
<field name="planes" writable="1">
<doc xml:space="preserve">an array of @n_planes pointers pointing to the start of each
plane in the mapped buffer</doc>
<type name="gpointer" c:type="gpointer*"/>
</field>
<field name="buffer" writable="1">
<doc xml:space="preserve">the mapped buffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</field>
<field name="map_infos" readable="0" private="1">
<type name="Gst.MapInfo" c:type="GstMapInfo*"/>
</field>
<field name="priv_planes_arr" readable="0" private="1">
<array zero-terminated="0" c:type="gpointer" fixed-size="8">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<field name="priv_map_infos_arr" readable="0" private="1">
<array zero-terminated="0" c:type="GstMapInfo" fixed-size="8">
<type name="Gst.MapInfo" c:type="GstMapInfo"/>
</array>
</field>
<field name="_gst_reserved" readable="0" private="1">
<array zero-terminated="0" c:type="gpointer" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<method name="map" c:identifier="gst_audio_buffer_map" version="1.16">
<doc xml:space="preserve">Maps an audio @gstbuffer so that it can be read or written and stores the
result of the map operation in @buffer.
This is especially useful when the @gstbuffer is in non-interleaved (planar)
layout, in which case this function will use the information in the
@gstbuffer's attached #GstAudioMeta in order to map each channel in a
separate "plane" in #GstAudioBuffer. If a #GstAudioMeta is not attached
on the @gstbuffer, then it must be in interleaved layout.
If a #GstAudioMeta is attached, then the #GstAudioInfo on the meta is checked
against @info. Normally, they should be equal, but in case they are not,
a g_critical will be printed and the #GstAudioInfo from the meta will be
used.
In non-interleaved buffers, it is possible to have each channel on a separate
#GstMemory. In this case, each memory will be mapped separately to avoid
copying their contents in a larger memory area. Do note though that it is
not supported to have a single channel spanning over two or more different
#GstMemory objects. Although the map operation will likely succeed in this
case, it will be highly sub-optimal and it is recommended to merge all the
memories in the buffer before calling this function.
Note: The actual #GstBuffer is not ref'ed, but it is required to stay valid
as long as it's mapped.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the map operation succeeded or %FALSE on failure</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">pointer to a #GstAudioBuffer</doc>
<type name="AudioBuffer" c:type="GstAudioBuffer*"/>
</instance-parameter>
<parameter name="info" transfer-ownership="none">
<doc xml:space="preserve">the audio properties of the buffer</doc>
<type name="AudioInfo" c:type="const GstAudioInfo*"/>
</parameter>
<parameter name="gstbuffer" transfer-ownership="none">
<doc xml:space="preserve">the #GstBuffer to be mapped</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="flags" transfer-ownership="none">
<doc xml:space="preserve">the access mode for the memory</doc>
<type name="Gst.MapFlags" c:type="GstMapFlags"/>
</parameter>
</parameters>
</method>
<method name="unmap"
c:identifier="gst_audio_buffer_unmap"
version="1.16">
<doc xml:space="preserve">Unmaps an audio buffer that was previously mapped with
gst_audio_buffer_map().</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">the #GstAudioBuffer to unmap</doc>
<type name="AudioBuffer" c:type="GstAudioBuffer*"/>
</instance-parameter>
</parameters>
</method>
<function name="clip" c:identifier="gst_audio_buffer_clip">
<doc xml:space="preserve">Clip the buffer to the given %GstSegment.
After calling this function the caller does not own a reference to
@buffer anymore.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">%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</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</return-value>
<parameters>
<parameter name="buffer" transfer-ownership="full">
<doc xml:space="preserve">The buffer to clip.</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="segment" transfer-ownership="none">
<doc xml:space="preserve">Segment in %GST_FORMAT_TIME or %GST_FORMAT_DEFAULT to which
the buffer should be clipped.</doc>
<type name="Gst.Segment" c:type="const GstSegment*"/>
</parameter>
<parameter name="rate" transfer-ownership="none">
<doc xml:space="preserve">sample rate.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="bpf" transfer-ownership="none">
<doc xml:space="preserve">size of one audio frame in bytes. This is the size of one sample *
number of channels.</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
</function>
<function name="reorder_channels"
c:identifier="gst_audio_buffer_reorder_channels">
<doc xml:space="preserve">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.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the reordering was possible.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">The buffer to reorder.</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve">The %GstAudioFormat of the buffer.</doc>
<type name="AudioFormat" c:type="GstAudioFormat"/>
</parameter>
<parameter name="channels" transfer-ownership="none">
<doc xml:space="preserve">The number of channels.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="from" transfer-ownership="none">
<doc xml:space="preserve">The channel positions in the buffer.</doc>
<array length="2"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
</parameter>
<parameter name="to" transfer-ownership="none">
<doc xml:space="preserve">The channel positions to convert to.</doc>
<array length="2"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
</parameter>
</parameters>
</function>
<function name="truncate"
c:identifier="gst_audio_buffer_truncate"
version="1.16">
<doc xml:space="preserve">Truncate the buffer to finally have @samples number of samples, removing
the necessary amount of samples from the end and @trim number of samples
from the beginning.
After calling this function the caller does not own a reference to
@buffer anymore.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the truncated buffer or %NULL if the arguments
were invalid</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</return-value>
<parameters>
<parameter name="buffer" transfer-ownership="full">
<doc xml:space="preserve">The buffer to truncate.</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="bpf" transfer-ownership="none">
<doc xml:space="preserve">size of one audio frame in bytes. This is the size of one sample *
number of channels.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="trim" transfer-ownership="none">
<doc xml:space="preserve">the number of samples to remove from the beginning of the buffer</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="samples" transfer-ownership="none">
<doc xml:space="preserve">the final number of samples that should exist in this buffer or -1
to use all the remaining samples if you are only removing samples from the
beginning.</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</function>
</record>
<class name="AudioCdSrc"
c:symbol-prefix="audio_cd_src"
c:type="GstAudioCdSrc"
@ -2207,11 +2429,19 @@ be used.</doc>
glib:type-name="GstAudioConverter"
glib:get-type="gst_audio_converter_get_type"
c:symbol-prefix="audio_converter">
<doc xml:space="preserve">This object is used to convert audio samples from one format to another.
The object can perform conversion of:
* audio format with optional dithering and noise shaping
* audio samplerate
* audio channels and channel layout</doc>
<constructor name="new" c:identifier="gst_audio_converter_new">
<doc xml:space="preserve">Create a new #GstAudioConverter that is able to convert between @in and @out
audio formats.
@config contains extra configuration options, see #GST_VIDEO_CONVERTER_OPT_*
@config contains extra configuration options, see #GST_AUDIO_CONVERTER_OPT_*
parameters for details about the options and values.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a #GstAudioConverter or %NULL if conversion is not possible.</doc>
@ -2251,6 +2481,7 @@ gst_audio_converter_get_out_frames().</doc>
</return-value>
<parameters>
<instance-parameter name="convert" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioConverter</doc>
<type name="AudioConverter" c:type="GstAudioConverter*"/>
</instance-parameter>
<parameter name="flags" transfer-ownership="none">
@ -2385,6 +2616,21 @@ frames are given to @convert.</doc>
</parameter>
</parameters>
</method>
<method name="is_passthrough"
c:identifier="gst_audio_converter_is_passthrough"
version="1.16">
<doc xml:space="preserve">Returns whether the audio converter will operate in passthrough mode.
The return value would be typically input to gst_base_transform_set_passthrough()</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE when no conversion will actually occur.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="convert" transfer-ownership="none">
<type name="AudioConverter" c:type="GstAudioConverter*"/>
</instance-parameter>
</parameters>
</method>
<method name="reset" c:identifier="gst_audio_converter_reset">
<doc xml:space="preserve">Reset @convert to the state it was when it was first created, clearing
any history it might currently have.</doc>
@ -2610,7 +2856,10 @@ occurs (which would happen always if the tolerance mechanism is disabled).
In non-live pipelines, baseclass can also (configurably) arrange for
output buffer aggregation which may help to redue large(r) numbers of
small(er) buffers being pushed and processed downstream.
small(er) buffers being pushed and processed downstream. Note that this
feature is only available if the buffer layout is interleaved. For planar
buffers, the decoder implementation is fully responsible for the output
buffer size.
On the other hand, it should be noted that baseclass only provides limited
seeking support (upon explicit subclass request), as full-fledged support
@ -2895,7 +3144,7 @@ are discarded and considered to have produced no output
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
Note that a frame received in #GstAudioDecoderClass.handle_frame() may be
invalidated by a call to this function.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a #GstFlowReturn that should be escalated to caller (of caller)</doc>
@ -2947,7 +3196,7 @@ used</doc>
optional="1"
allow-none="1">
<doc xml:space="preserve">the
#GstAllocatorParams of @allocator</doc>
#GstAllocationParams of @allocator</doc>
<type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
</parameter>
</parameters>
@ -3377,6 +3626,28 @@ MT safe.</doc>
</parameter>
</parameters>
</method>
<method name="set_output_caps"
c:identifier="gst_audio_decoder_set_output_caps"
version="1.16">
<doc xml:space="preserve">Configure output caps on the srcpad of @dec. Similar to
gst_audio_decoder_set_output_format(), but allows subclasses to specify
output caps that can't be expressed via #GstAudioInfo e.g. caps that have
caps features.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE on success.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="dec" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioDecoder</doc>
<type name="AudioDecoder" c:type="GstAudioDecoder*"/>
</instance-parameter>
<parameter name="caps" transfer-ownership="none">
<doc xml:space="preserve">(fixed) #GstCaps</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
</parameters>
</method>
<method name="set_output_format"
c:identifier="gst_audio_decoder_set_output_format">
<doc xml:space="preserve">Configure output info on the srcpad of @dec.</doc>
@ -4211,7 +4482,7 @@ If @samples &lt; 0, then best estimate is all samples provided to encoder
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()
Note that samples received in #GstAudioEncoderClass.handle_frame()
may be invalidated by a call to this function.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a #GstFlowReturn that should be escalated to caller (of caller)</doc>
@ -4263,7 +4534,7 @@ used</doc>
optional="1"
allow-none="1">
<doc xml:space="preserve">the
#GstAllocatorParams of @allocator</doc>
#GstAllocationParams of @allocator</doc>
<type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
</parameter>
</parameters>
@ -4583,7 +4854,7 @@ MT safe.</doc>
Requires @frame_samples_min and @frame_samples_max to be the equal.
Note: This value will be reset to 0 every time before
GstAudioEncoder::set_format() is called.</doc>
#GstAudioEncoderClass.set_format() is called.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@ -4607,7 +4878,7 @@ If an exact number of samples is required, gst_audio_encoder_set_frame_samples_m
must be called with the same number.
Note: This value will be reset to 0 every time before
GstAudioEncoder::set_format() is called.</doc>
#GstAudioEncoderClass.set_format() is called.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@ -4631,7 +4902,7 @@ If an exact number of samples is required, gst_audio_encoder_set_frame_samples_m
must be called with the same number.
Note: This value will be reset to 0 every time before
GstAudioEncoder::set_format() is called.</doc>
#GstAudioEncoderClass.set_format() is called.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@ -4726,7 +4997,7 @@ MT safe.</doc>
<doc xml:space="preserve">Sets encoder lookahead (in units of input rate samples)
Note: This value will be reset to 0 every time before
GstAudioEncoder::set_format() is called.</doc>
#GstAudioEncoderClass.set_format() is called.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@ -5712,11 +5983,12 @@ and will be packed into @data.</doc>
<type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/>
</parameter>
<parameter name="flags" transfer-ownership="none">
<doc xml:space="preserve">#GstAudioPackFlags</doc>
<type name="AudioPackFlags" c:type="GstAudioPackFlags"/>
</parameter>
<parameter name="src" transfer-ownership="none">
<doc xml:space="preserve">a source array</doc>
<array zero-terminated="0" c:type="gpointer">
<array zero-terminated="0" c:type="gconstpointer">
<type name="guint8"/>
</array>
</parameter>
@ -5747,6 +6019,7 @@ channels * size(unpack_format) bytes.</doc>
<type name="AudioFormatInfo" c:type="const GstAudioFormatInfo*"/>
</parameter>
<parameter name="flags" transfer-ownership="none">
<doc xml:space="preserve">#GstAudioPackFlags</doc>
<type name="AudioPackFlags" c:type="GstAudioPackFlags"/>
</parameter>
<parameter name="dest" transfer-ownership="none">
@ -5757,7 +6030,7 @@ channels * size(unpack_format) bytes.</doc>
</parameter>
<parameter name="data" transfer-ownership="none">
<doc xml:space="preserve">pointer to the audio data</doc>
<array zero-terminated="0" c:type="gpointer">
<array zero-terminated="0" c:type="gconstpointer">
<type name="guint8"/>
</array>
</parameter>
@ -6002,6 +6275,44 @@ Note: This initializes @info first, no values are preserved.</doc>
<doc xml:space="preserve">non-interleaved audio</doc>
</member>
</enumeration>
<record name="AudioMeta" c:type="GstAudioMeta" version="1.16">
<doc xml:space="preserve">#GstAudioDownmixMeta defines an audio downmix matrix to be send along with
audio buffers. These functions in this module help to create and attach the
meta as well as extracting it.</doc>
<field name="meta" writable="1">
<doc xml:space="preserve">parent #GstMeta</doc>
<type name="Gst.Meta" c:type="GstMeta"/>
</field>
<field name="info" writable="1">
<doc xml:space="preserve">the audio properties of the buffer</doc>
<type name="AudioInfo" c:type="GstAudioInfo"/>
</field>
<field name="samples" writable="1">
<doc xml:space="preserve">the number of valid samples in the buffer</doc>
<type name="gsize" c:type="gsize"/>
</field>
<field name="offsets" writable="1">
<doc xml:space="preserve">the offsets (in bytes) where each channel plane starts in the
buffer or %NULL if the buffer has interleaved layout; if not %NULL, this
is guaranteed to be an array of @info.channels elements</doc>
<type name="gsize" c:type="gsize*"/>
</field>
<field name="priv_offsets_arr" readable="0" private="1">
<array zero-terminated="0" c:type="gsize" fixed-size="8">
<type name="gsize" c:type="gsize"/>
</array>
</field>
<field name="_gst_reserved" readable="0" private="1">
<array zero-terminated="0" c:type="gpointer" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<function name="get_info" c:identifier="gst_audio_meta_get_info">
<return-value transfer-ownership="none">
<type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
</return-value>
</function>
</record>
<enumeration name="AudioNoiseShapingMethod"
glib:type-name="GstAudioNoiseShapingMethod"
glib:get-type="gst_audio_noise_shaping_method_get_type"
@ -6353,7 +6664,8 @@ When @options is %NULL, the previously configured options are reused.</doc>
<function name="new" c:identifier="gst_audio_resampler_new">
<doc xml:space="preserve">Make a new resampler.</doc>
<return-value transfer-ownership="full" skip="1">
<doc xml:space="preserve">%TRUE on success</doc>
<doc xml:space="preserve">The new #GstAudioResampler, or
%NULL on failure.</doc>
<type name="AudioResampler" c:type="GstAudioResampler*"/>
</return-value>
<parameters>
@ -6367,9 +6679,11 @@ When @options is %NULL, the previously configured options are reused.</doc>
<type name="AudioResamplerFlags" c:type="GstAudioResamplerFlags"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve">the #GstAudioFormat</doc>
<type name="AudioFormat" c:type="GstAudioFormat"/>
</parameter>
<parameter name="channels" transfer-ownership="none">
<doc xml:space="preserve">the number of channels</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="in_rate" transfer-ownership="none">
@ -7514,7 +7828,7 @@ MT safe.</doc>
<doc xml:space="preserve">size of data in the ringbuffer</doc>
<type name="gsize" c:type="gsize"/>
</field>
<field name="timestamps">
<field name="timestamps" readable="0" private="1">
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
</field>
<field name="spec">
@ -8495,7 +8809,7 @@ gst_audio_stream_align_process() for the details of the processing.</doc>
version="1.14">
<doc xml:space="preserve">Allocate a new #GstAudioStreamAlign with the given configuration. All
processing happens according to sample rate @rate, until
gst_audio_discont_wait_set_rate() is called with a new @rate.
gst_audio_stream_align_set_rate() is called with a new @rate.
A negative rate can be used for reverse playback.
@alignment_threshold gives the tolerance in nanoseconds after which a
@ -8554,33 +8868,46 @@ or gst_audio_stream_align_copy().</doc>
</parameters>
</method>
<method name="get_alignment_threshold"
c:identifier="gst_audio_stream_align_get_alignment_threshold">
c:identifier="gst_audio_stream_align_get_alignment_threshold"
version="1.14">
<doc xml:space="preserve">Gets the currently configured alignment threshold.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The currently configured alignment threshold</doc>
<type name="Gst.ClockTime" c:type="GstClockTime"/>
</return-value>
<parameters>
<instance-parameter name="align" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioStreamAlign</doc>
<type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_discont_wait"
c:identifier="gst_audio_stream_align_get_discont_wait">
c:identifier="gst_audio_stream_align_get_discont_wait"
version="1.14">
<doc xml:space="preserve">Gets the currently configured discont wait.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The currently configured discont wait</doc>
<type name="Gst.ClockTime" c:type="GstClockTime"/>
</return-value>
<parameters>
<instance-parameter name="align" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioStreamAlign</doc>
<type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_rate" c:identifier="gst_audio_stream_align_get_rate">
<method name="get_rate"
c:identifier="gst_audio_stream_align_get_rate"
version="1.14">
<doc xml:space="preserve">Gets the currently configured sample rate.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The currently configured sample rate</doc>
<type name="gint" c:type="gint"/>
</return-value>
<parameters>
<instance-parameter name="align" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioStreamAlign</doc>
<type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/>
</instance-parameter>
</parameters>
@ -8695,42 +9022,56 @@ of the current one.</doc>
</parameters>
</method>
<method name="set_alignment_threshold"
c:identifier="gst_audio_stream_align_set_alignment_threshold">
c:identifier="gst_audio_stream_align_set_alignment_threshold"
version="1.14">
<doc xml:space="preserve">Sets @alignment_treshold as new alignment threshold for the following processing.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="align" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioStreamAlign</doc>
<type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/>
</instance-parameter>
<parameter name="alignment_threshold" transfer-ownership="none">
<doc xml:space="preserve">a new alignment threshold</doc>
<type name="Gst.ClockTime" c:type="GstClockTime"/>
</parameter>
</parameters>
</method>
<method name="set_discont_wait"
c:identifier="gst_audio_stream_align_set_discont_wait">
c:identifier="gst_audio_stream_align_set_discont_wait"
version="1.14">
<doc xml:space="preserve">Sets @alignment_treshold as new discont wait for the following processing.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="align" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioStreamAlign</doc>
<type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/>
</instance-parameter>
<parameter name="discont_wait" transfer-ownership="none">
<doc xml:space="preserve">a new discont wait</doc>
<type name="Gst.ClockTime" c:type="GstClockTime"/>
</parameter>
</parameters>
</method>
<method name="set_rate" c:identifier="gst_audio_stream_align_set_rate">
<method name="set_rate"
c:identifier="gst_audio_stream_align_set_rate"
version="1.14">
<doc xml:space="preserve">Sets @rate as new sample rate for the following processing. If the sample
rate differs this implicitely marks the next data as discontinuous.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="align" transfer-ownership="none">
<doc xml:space="preserve">a #GstAudioStreamAlign</doc>
<type name="AudioStreamAlign" c:type="GstAudioStreamAlign*"/>
</instance-parameter>
<parameter name="rate" transfer-ownership="none">
<doc xml:space="preserve">a new sample rate</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
@ -8896,7 +9237,9 @@ cbrt(val) and 20 * log10 (val).</doc>
<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
</field>
</record>
<function name="audio_buffer_clip" c:identifier="gst_audio_buffer_clip">
<function name="audio_buffer_clip"
c:identifier="gst_audio_buffer_clip"
moved-to="AudioBuffer.clip">
<doc xml:space="preserve">Clip the buffer to the given %GstSegment.
After calling this function the caller does not own a reference to
@ -8931,7 +9274,8 @@ number of channels.</doc>
</parameters>
</function>
<function name="audio_buffer_reorder_channels"
c:identifier="gst_audio_buffer_reorder_channels">
c:identifier="gst_audio_buffer_reorder_channels"
moved-to="AudioBuffer.reorder_channels">
<doc xml:space="preserve">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.
@ -8955,20 +9299,61 @@ positions and the same positions, only in a different order.
</parameter>
<parameter name="from" transfer-ownership="none">
<doc xml:space="preserve">The channel positions in the buffer.</doc>
<array zero-terminated="0" c:type="GstAudioChannelPosition*">
<array length="2"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
</parameter>
<parameter name="to" transfer-ownership="none">
<doc xml:space="preserve">The channel positions to convert to.</doc>
<array zero-terminated="0" c:type="GstAudioChannelPosition*">
<array length="2"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
</parameter>
</parameters>
</function>
<function name="audio_buffer_truncate"
c:identifier="gst_audio_buffer_truncate"
moved-to="AudioBuffer.truncate"
version="1.16">
<doc xml:space="preserve">Truncate the buffer to finally have @samples number of samples, removing
the necessary amount of samples from the end and @trim number of samples
from the beginning.
After calling this function the caller does not own a reference to
@buffer anymore.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the truncated buffer or %NULL if the arguments
were invalid</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</return-value>
<parameters>
<parameter name="buffer" transfer-ownership="full">
<doc xml:space="preserve">The buffer to truncate.</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="bpf" transfer-ownership="none">
<doc xml:space="preserve">size of one audio frame in bytes. This is the size of one sample *
number of channels.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="trim" transfer-ownership="none">
<doc xml:space="preserve">the number of samples to remove from the beginning of the buffer</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="samples" transfer-ownership="none">
<doc xml:space="preserve">the final number of samples that should exist in this buffer or -1
to use all the remaining samples if you are only removing samples from the
beginning.</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</function>
<function name="audio_channel_get_fallback_mask"
c:identifier="gst_audio_channel_get_fallback_mask"
version="1.8">
@ -9369,21 +9754,25 @@ is possible.</doc>
</parameter>
<parameter name="from" transfer-ownership="none">
<doc xml:space="preserve">The channel positions to reorder from.</doc>
<array zero-terminated="0" c:type="GstAudioChannelPosition*">
<array length="0"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
</parameter>
<parameter name="to" transfer-ownership="none">
<doc xml:space="preserve">The channel positions to reorder to.</doc>
<array zero-terminated="0" c:type="GstAudioChannelPosition*">
<array length="0"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
</parameter>
<parameter name="reorder_map" transfer-ownership="none">
<doc xml:space="preserve">Pointer to the reorder map.</doc>
<array zero-terminated="0" c:type="gint*">
<array length="0" zero-terminated="0" c:type="gint*">
<type name="gint" c:type="gint"/>
</array>
</parameter>
@ -9449,6 +9838,19 @@ otherwise.</doc>
</parameter>
</parameters>
</function>
<function name="audio_meta_api_get_type"
c:identifier="gst_audio_meta_api_get_type">
<return-value transfer-ownership="none">
<type name="GType" c:type="GType"/>
</return-value>
</function>
<function name="audio_meta_get_info"
c:identifier="gst_audio_meta_get_info"
moved-to="AudioMeta.get_info">
<return-value transfer-ownership="none">
<type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
</return-value>
</function>
<function name="audio_quantize_new"
c:identifier="gst_audio_quantize_new"
moved-to="AudioQuantize.new"
@ -9496,7 +9898,9 @@ the @dither and @ns parameters.</doc>
c:identifier="gst_audio_reorder_channels">
<doc xml:space="preserve">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.</doc>
positions and the same positions, only in a different order.
Note: this function assumes the audio data is in interleaved layout</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the reordering was possible.</doc>
<type name="gboolean" c:type="gboolean"/>
@ -9523,14 +9927,18 @@ positions and the same positions, only in a different order.</doc>
</parameter>
<parameter name="from" transfer-ownership="none">
<doc xml:space="preserve">The channel positions in the buffer.</doc>
<array zero-terminated="0" c:type="GstAudioChannelPosition*">
<array length="3"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
</parameter>
<parameter name="to" transfer-ownership="none">
<doc xml:space="preserve">The channel positions to convert to.</doc>
<array zero-terminated="0" c:type="GstAudioChannelPosition*">
<array length="3"
zero-terminated="0"
c:type="GstAudioChannelPosition*">
<type name="AudioChannelPosition"
c:type="GstAudioChannelPosition"/>
</array>
@ -9542,7 +9950,8 @@ positions and the same positions, only in a different order.</doc>
moved-to="AudioResampler.new">
<doc xml:space="preserve">Make a new resampler.</doc>
<return-value transfer-ownership="full" skip="1">
<doc xml:space="preserve">%TRUE on success</doc>
<doc xml:space="preserve">The new #GstAudioResampler, or
%NULL on failure.</doc>
<type name="AudioResampler" c:type="GstAudioResampler*"/>
</return-value>
<parameters>
@ -9555,9 +9964,11 @@ positions and the same positions, only in a different order.</doc>
<type name="AudioResamplerFlags" c:type="GstAudioResamplerFlags"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve">the #GstAudioFormat</doc>
<type name="AudioFormat" c:type="GstAudioFormat"/>
</parameter>
<parameter name="channels" transfer-ownership="none">
<doc xml:space="preserve">the number of channels</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="in_rate" transfer-ownership="none">
@ -9683,6 +10094,53 @@ of the results.</doc>
</parameter>
</parameters>
</function>
<function name="buffer_add_audio_meta"
c:identifier="gst_buffer_add_audio_meta"
version="1.16"
introspectable="0">
<doc xml:space="preserve">Allocates and attaches a #GstAudioMeta on @buffer, which must be writable
for that purpose. The fields of the #GstAudioMeta are directly populated
from the arguments of this function.
When @info-&gt;layout is %GST_AUDIO_LAYOUT_NON_INTERLEAVED and @offsets is
%NULL, the offsets are calculated with a formula that assumes the planes are
tightly packed and in sequence:
offsets[channel] = channel * @samples * sample_stride
It is not allowed for channels to overlap in memory,
i.e. for each i in [0, channels), the range
[@offsets[i], @offsets[i] + @samples * sample_stride) must not overlap
with any other such range. This function will assert if the parameters
specified cause this restriction to be violated.
It is, obviously, also not allowed to specify parameters that would cause
out-of-bounds memory access on @buffer. This is also checked, which means
that you must add enough memory on the @buffer before adding this meta.</doc>
<return-value>
<doc xml:space="preserve">the #GstAudioMeta that was attached on the @buffer</doc>
<type name="AudioMeta" c:type="GstAudioMeta*"/>
</return-value>
<parameters>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">a #GstBuffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="info" transfer-ownership="none">
<doc xml:space="preserve">the audio properties of the buffer</doc>
<type name="AudioInfo" c:type="const GstAudioInfo*"/>
</parameter>
<parameter name="samples" transfer-ownership="none">
<doc xml:space="preserve">the number of valid samples in the buffer</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="offsets" transfer-ownership="none">
<doc xml:space="preserve">the offsets (in bytes) where each channel plane starts
in the buffer or %NULL to calculate it (see below); must be %NULL also
when @info-&gt;layout is %GST_AUDIO_LAYOUT_INTERLEAVED</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</function>
<function name="buffer_get_audio_downmix_meta_for_channels"
c:identifier="gst_buffer_get_audio_downmix_meta_for_channels">
<doc xml:space="preserve">Find the #GstAudioDownmixMeta on @buffer for the given destination

File diff suppressed because it is too large Load diff

View file

@ -805,7 +805,7 @@ time.</doc>
</array>
</field>
<glib:signal name="value-added" when="first" version="1.6">
<doc xml:space="preserve">Emited right after the new value has been added to @self</doc>
<doc xml:space="preserve">Emitted right after the new value has been added to @self</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@ -817,7 +817,7 @@ time.</doc>
</parameters>
</glib:signal>
<glib:signal name="value-changed" when="first" version="1.6">
<doc xml:space="preserve">Emited right after the new value has been set on @timed_signals</doc>
<doc xml:space="preserve">Emitted right after the new value has been set on @timed_signals</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@ -829,7 +829,7 @@ time.</doc>
</parameters>
</glib:signal>
<glib:signal name="value-removed" when="first" version="1.6">
<doc xml:space="preserve">Emited when @timed_value is removed from @self</doc>
<doc xml:space="preserve">Emitted when @timed_value is removed from @self</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>

View file

@ -794,7 +794,7 @@ parameters if it wasn't called before.</doc>
version="1.6">
<doc xml:space="preserve">Check if the GStreamer PTP clock subsystem is initialized.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the GStreamer PTP clock subsystem is intialized.</doc>
<doc xml:space="preserve">%TRUE if the GStreamer PTP clock subsystem is initialized.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
</function>

View file

@ -123,7 +123,7 @@ new frame.</doc>
<record name="AudioVisualizerClass"
c:type="GstAudioVisualizerClass"
glib:is-gtype-struct-for="AudioVisualizer">
<field name="parent_class">
<field name="parent_class" readable="0" private="1">
<type name="Gst.ElementClass" c:type="GstElementClass"/>
</field>
<field name="setup">
@ -433,6 +433,12 @@ If the discovery of a URI times out, the %GST_DISCOVERER_TIMEOUT will be
set on the result flags.</doc>
<type name="guint64" c:type="guint64"/>
</property>
<property name="use-cache"
writable="1"
construct="1"
transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</property>
<field name="parent">
<type name="GObject.Object" c:type="GObject"/>
</field>
@ -1684,8 +1690,11 @@ information like name, description, format and preset.</doc>
<doc xml:space="preserve">The name of the target</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="profilename" transfer-ownership="none">
<doc xml:space="preserve">(allow-none): The name of the profile, if %NULL
<parameter name="profilename"
transfer-ownership="none"
nullable="1"
allow-none="1">
<doc xml:space="preserve">The name of the profile, if %NULL
provided, it will default to the encoding profile called `default`.</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
@ -2744,13 +2753,13 @@ in debugging.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="PLUGINS_BASE_VERSION_MICRO"
value="0"
value="1"
c:type="GST_PLUGINS_BASE_VERSION_MICRO">
<doc xml:space="preserve">The micro version of GStreamer's gst-plugins-base libraries at compile time.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="PLUGINS_BASE_VERSION_MINOR"
value="14"
value="15"
c:type="GST_PLUGINS_BASE_VERSION_MINOR">
<doc xml:space="preserve">The minor version of GStreamer's gst-plugins-base libraries at compile time.</doc>
<type name="gint" c:type="gint"/>
@ -2840,13 +2849,12 @@ 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:
* Bit 0:4 contains the AudioObjectType
* Bit 0:4 contains the AudioObjectType (if this is 0x5, then the
real AudioObjectType is carried after the rate and channel data)
* 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).
* Bit 9:12 contains the channel configuration
&gt; HE-AAC support has not yet been implemented.</doc>
* Bit 9:12 contains the channel configuration</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The level as a const string and %NULL if the level could not be
determined.</doc>
@ -2870,10 +2878,8 @@ determined.</doc>
<function name="codec_utils_aac_get_profile"
c:identifier="gst_codec_utils_aac_get_profile">
<doc xml:space="preserve">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.
&gt; HE-AAC support has not yet been implemented.</doc>
normally determined using the AudioObjectType field which is in the first
5 bits of @audio_config</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The profile as a const string and %NULL if the profile could not be
determined.</doc>

View file

@ -1465,6 +1465,560 @@ Note: Not implemented.</doc>
</parameter>
</parameters>
</method>
<method name="xr_first_rb"
c:identifier="gst_rtcp_packet_xr_first_rb"
version="1.16">
<doc xml:space="preserve">Move to the first extended report block in XR @packet.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">TRUE if there was a first extended report block.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
</parameters>
</method>
<method name="xr_get_block_length"
c:identifier="gst_rtcp_packet_xr_get_block_length"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">The number of 32-bit words containing type-specific block
data from @packet.</doc>
<type name="guint16" c:type="guint16"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
</parameters>
</method>
<method name="xr_get_block_type"
c:identifier="gst_rtcp_packet_xr_get_block_type"
version="1.16">
<doc xml:space="preserve">Get the extended report block type of the XR @packet.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The extended report block type.</doc>
<type name="RTCPXRType" c:type="GstRTCPXRType"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
</parameters>
</method>
<method name="xr_get_dlrr_block"
c:identifier="gst_rtcp_packet_xr_get_dlrr_block"
version="1.16">
<doc xml:space="preserve">Parse the extended report block for DLRR report block type.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has DLRR Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="nth" transfer-ownership="none">
<doc xml:space="preserve">the index of sub-block to retrieve.</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="ssrc" transfer-ownership="none">
<doc xml:space="preserve">the SSRC of the receiver.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="last_rr" transfer-ownership="none">
<doc xml:space="preserve">the last receiver reference timestamp of @ssrc.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="delay" transfer-ownership="none">
<doc xml:space="preserve">the delay since @last_rr.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_prt_by_seq"
c:identifier="gst_rtcp_packet_xr_get_prt_by_seq"
version="1.16">
<doc xml:space="preserve">Retrieve the packet receipt time of @seq which ranges in [begin_seq, end_seq).</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block returns the receipt time correctly.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has the Packet Recept Times Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="seq" transfer-ownership="none">
<doc xml:space="preserve">the sequence to retrieve the time.</doc>
<type name="guint16" c:type="guint16"/>
</parameter>
<parameter name="receipt_time" transfer-ownership="none">
<doc xml:space="preserve">the packet receipt time of @seq.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_prt_info"
c:identifier="gst_rtcp_packet_xr_get_prt_info"
version="1.16">
<doc xml:space="preserve">Parse the Packet Recept Times Report Block from a XR @packet</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has a Packet Receipt Times Report Block</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="ssrc" transfer-ownership="none">
<doc xml:space="preserve">the SSRC of the RTP data packet source being reported upon by this report block.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="thinning" transfer-ownership="none">
<doc xml:space="preserve">the amount of thinning performed on the sequence number space.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="begin_seq" transfer-ownership="none">
<doc xml:space="preserve">the first sequence number that this block reports on.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="end_seq" transfer-ownership="none">
<doc xml:space="preserve">the last sequence number that this block reports on plus one.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_rle_info"
c:identifier="gst_rtcp_packet_xr_get_rle_info"
version="1.16">
<doc xml:space="preserve">Parse the extended report block for Loss RLE and Duplicated LRE block type.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which is Loss RLE or Duplicate RLE report.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="ssrc" transfer-ownership="none">
<doc xml:space="preserve">the SSRC of the RTP data packet source being reported upon by this report block.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="thinning" transfer-ownership="none">
<doc xml:space="preserve">the amount of thinning performed on the sequence number space.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="begin_seq" transfer-ownership="none">
<doc xml:space="preserve">the first sequence number that this block reports on.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="end_seq" transfer-ownership="none">
<doc xml:space="preserve">the last sequence number that this block reports on plus one.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="chunk_count" transfer-ownership="none">
<doc xml:space="preserve">the number of chunks calculated by block length.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_rle_nth_chunk"
c:identifier="gst_rtcp_packet_xr_get_rle_nth_chunk"
version="1.16">
<doc xml:space="preserve">Retrieve actual chunk data.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block returns chunk correctly.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which is Loss RLE or Duplicate RLE report.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="nth" transfer-ownership="none">
<doc xml:space="preserve">the index of chunk to retrieve.</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="chunk" transfer-ownership="none">
<doc xml:space="preserve">the @nth chunk.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_rrt"
c:identifier="gst_rtcp_packet_xr_get_rrt"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block returns the reference time correctly.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has the Receiver Reference Time.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="timestamp" transfer-ownership="none">
<doc xml:space="preserve">NTP timestamp</doc>
<type name="guint64" c:type="guint64*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_ssrc"
c:identifier="gst_rtcp_packet_xr_get_ssrc"
version="1.16">
<doc xml:space="preserve">Get the ssrc field of the XR @packet.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the ssrc.</doc>
<type name="guint32" c:type="guint32"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
</parameters>
</method>
<method name="xr_get_summary_info"
c:identifier="gst_rtcp_packet_xr_get_summary_info"
version="1.16">
<doc xml:space="preserve">Extract a basic information from static summary report block of XR @packet.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has Statics Summary Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="ssrc" transfer-ownership="none">
<doc xml:space="preserve">the SSRC of the source.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="begin_seq" transfer-ownership="none">
<doc xml:space="preserve">the first sequence number that this block reports on.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="end_seq" transfer-ownership="none">
<doc xml:space="preserve">the last sequence number that this block reports on plus one.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_summary_jitter"
c:identifier="gst_rtcp_packet_xr_get_summary_jitter"
version="1.16">
<doc xml:space="preserve">Extract jitter information from the statistics summary. If the jitter flag in
a block header is set as zero, all of jitters will be zero.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has Statics Summary Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="min_jitter" transfer-ownership="none">
<doc xml:space="preserve">the minimum relative transit time between two sequences.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="max_jitter" transfer-ownership="none">
<doc xml:space="preserve">the maximum relative transit time between two sequences.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="mean_jitter" transfer-ownership="none">
<doc xml:space="preserve">the mean relative transit time between two sequences.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="dev_jitter" transfer-ownership="none">
<doc xml:space="preserve">the standard deviation of the relative transit time between two sequences.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_summary_pkt"
c:identifier="gst_rtcp_packet_xr_get_summary_pkt"
version="1.16">
<doc xml:space="preserve">Get the number of lost or duplicate packets. If the flag in a block header
is set as zero, @lost_packets or @dup_packets will be zero.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has Statics Summary Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="lost_packets" transfer-ownership="none">
<doc xml:space="preserve">the number of lost packets between begin_seq and end_seq.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="dup_packets" transfer-ownership="none">
<doc xml:space="preserve">the number of duplicate packets between begin_seq and end_seq.</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_summary_ttl"
c:identifier="gst_rtcp_packet_xr_get_summary_ttl"
version="1.16">
<doc xml:space="preserve">Extract the value of ttl for ipv4, or hop limit for ipv6.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has Statics Summary Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="is_ipv4" transfer-ownership="none">
<doc xml:space="preserve">the flag to indicate that the return values are ipv4 ttl or ipv6 hop limits.</doc>
<type name="gboolean" c:type="gboolean*"/>
</parameter>
<parameter name="min_ttl" transfer-ownership="none">
<doc xml:space="preserve">the minimum TTL or Hop Limit value of data packets between two sequences.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="max_ttl" transfer-ownership="none">
<doc xml:space="preserve">the maximum TTL or Hop Limit value of data packets between two sequences.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="mean_ttl" transfer-ownership="none">
<doc xml:space="preserve">the mean TTL or Hop Limit value of data packets between two sequences.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="dev_ttl" transfer-ownership="none">
<doc xml:space="preserve">the standard deviation of the TTL or Hop Limit value of data packets between two sequences.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_burst_metrics"
c:identifier="gst_rtcp_packet_xr_get_voip_burst_metrics"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="burst_density" transfer-ownership="none">
<doc xml:space="preserve">the fraction of RTP data packets within burst periods.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="gap_density" transfer-ownership="none">
<doc xml:space="preserve">the fraction of RTP data packets within inter-burst gaps.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="burst_duration" transfer-ownership="none">
<doc xml:space="preserve">the mean duration(ms) of the burst periods.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="gap_duration" transfer-ownership="none">
<doc xml:space="preserve">the mean duration(ms) of the gap periods.</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_configuration_params"
c:identifier="gst_rtcp_packet_xr_get_voip_configuration_params"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="gmin" transfer-ownership="none">
<doc xml:space="preserve">the gap threshold.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="rx_config" transfer-ownership="none">
<doc xml:space="preserve">the receiver configuration byte.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_delay_metrics"
c:identifier="gst_rtcp_packet_xr_get_voip_delay_metrics"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="roundtrip_delay" transfer-ownership="none">
<doc xml:space="preserve">the most recently calculated round trip time between RTP interfaces(ms)</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="end_system_delay" transfer-ownership="none">
<doc xml:space="preserve">the most recently estimated end system delay(ms)</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_jitter_buffer_params"
c:identifier="gst_rtcp_packet_xr_get_voip_jitter_buffer_params"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="jb_nominal" transfer-ownership="none">
<doc xml:space="preserve">the current nominal jitter buffer delay(ms)</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="jb_maximum" transfer-ownership="none">
<doc xml:space="preserve">the current maximum jitter buffer delay(ms)</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
<parameter name="jb_abs_max" transfer-ownership="none">
<doc xml:space="preserve">the absolute maximum delay(ms)</doc>
<type name="guint16" c:type="guint16*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_metrics_ssrc"
c:identifier="gst_rtcp_packet_xr_get_voip_metrics_ssrc"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="ssrc" transfer-ownership="none">
<doc xml:space="preserve">the SSRC of source</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_packet_metrics"
c:identifier="gst_rtcp_packet_xr_get_voip_packet_metrics"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="loss_rate" transfer-ownership="none">
<doc xml:space="preserve">the fraction of RTP data packets from the source lost.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="discard_rate" transfer-ownership="none">
<doc xml:space="preserve">the fraction of RTP data packets from the source that have been discarded.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_quality_metrics"
c:identifier="gst_rtcp_packet_xr_get_voip_quality_metrics"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="r_factor" transfer-ownership="none">
<doc xml:space="preserve">the R factor is a voice quality metric describing the segment of the call.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="ext_r_factor" transfer-ownership="none">
<doc xml:space="preserve">the external R factor is a voice quality metric.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="mos_lq" transfer-ownership="none">
<doc xml:space="preserve">the estimated mean opinion score for listening quality.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="mos_cq" transfer-ownership="none">
<doc xml:space="preserve">the estimated mean opinion score for conversational quality.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
</parameters>
</method>
<method name="xr_get_voip_signal_metrics"
c:identifier="gst_rtcp_packet_xr_get_voip_signal_metrics"
version="1.16">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the report block is correctly parsed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket which has VoIP Metrics Report Block.</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
<parameter name="signal_level" transfer-ownership="none">
<doc xml:space="preserve">the ratio of the signal level to a 0 dBm reference.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="noise_level" transfer-ownership="none">
<doc xml:space="preserve">the ratio of the silent period background noise level to a 0 dBm reference.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="rerl" transfer-ownership="none">
<doc xml:space="preserve">the residual echo return loss value.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
<parameter name="gmin" transfer-ownership="none">
<doc xml:space="preserve">the gap threshold.</doc>
<type name="guint8" c:type="guint8*"/>
</parameter>
</parameters>
</method>
<method name="xr_next_rb"
c:identifier="gst_rtcp_packet_xr_next_rb"
version="1.16">
<doc xml:space="preserve">Move to the next extended report block in XR @packet.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">TRUE if there was a next extended report block.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="packet" transfer-ownership="none">
<doc xml:space="preserve">a valid XR #GstRTCPPacket</doc>
<type name="RTCPPacket" c:type="GstRTCPPacket*"/>
</instance-parameter>
</parameters>
</method>
</record>
<enumeration name="RTCPSDESType"
glib:type-name="GstRTCPSDESType"
@ -1592,6 +2146,62 @@ Note: Not implemented.</doc>
<doc xml:space="preserve">Extended report.</doc>
</member>
</enumeration>
<enumeration name="RTCPXRType"
version="1.16"
glib:type-name="GstRTCPXRType"
glib:get-type="gst_rtcpxr_type_get_type"
c:type="GstRTCPXRType">
<doc xml:space="preserve">Types of RTCP Extended Reports, those are defined in RFC 3611 and other RFCs
according to the [IANA registry](https://www.iana.org/assignments/rtcp-xr-block-types/rtcp-xr-block-types.xhtml).</doc>
<member name="invalid"
value="-1"
c:identifier="GST_RTCP_XR_TYPE_INVALID"
glib:nick="invalid">
<doc xml:space="preserve">Invalid XR Report Block</doc>
</member>
<member name="lrle"
value="1"
c:identifier="GST_RTCP_XR_TYPE_LRLE"
glib:nick="lrle">
<doc xml:space="preserve">Loss RLE Report Block</doc>
</member>
<member name="drle"
value="2"
c:identifier="GST_RTCP_XR_TYPE_DRLE"
glib:nick="drle">
<doc xml:space="preserve">Duplicate RLE Report Block</doc>
</member>
<member name="prt"
value="3"
c:identifier="GST_RTCP_XR_TYPE_PRT"
glib:nick="prt">
<doc xml:space="preserve">Packet Receipt Times Report Block</doc>
</member>
<member name="rrt"
value="4"
c:identifier="GST_RTCP_XR_TYPE_RRT"
glib:nick="rrt">
<doc xml:space="preserve">Receiver Reference Time Report Block</doc>
</member>
<member name="dlrr"
value="5"
c:identifier="GST_RTCP_XR_TYPE_DLRR"
glib:nick="dlrr">
<doc xml:space="preserve">Delay since the last Receiver Report</doc>
</member>
<member name="ssumm"
value="6"
c:identifier="GST_RTCP_XR_TYPE_SSUMM"
glib:nick="ssumm">
<doc xml:space="preserve">Statistics Summary Report Block</doc>
</member>
<member name="voip_metrics"
value="7"
c:identifier="GST_RTCP_XR_TYPE_VOIP_METRICS"
glib:nick="voip-metrics">
<doc xml:space="preserve">VoIP Metrics Report Block</doc>
</member>
</enumeration>
<constant name="RTCP_MAX_BYE_SSRC_COUNT"
value="31"
c:type="GST_RTCP_MAX_BYE_SSRC_COUNT">
@ -1953,6 +2563,21 @@ audio codec</doc>
</parameter>
</parameters>
</virtual-method>
<method name="is_source_info_enabled"
c:identifier="gst_rtp_base_depayload_is_source_info_enabled"
version="1.16">
<doc xml:space="preserve">Queries whether #GstRTPSourceMeta will be added to depayloaded buffers.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if source-info is enabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="depayload" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPBaseDepayload</doc>
<type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/>
</instance-parameter>
</parameters>
</method>
<method name="push" c:identifier="gst_rtp_base_depayload_push">
<doc xml:space="preserve">Push @out_buf to the peer of @filter. This function takes ownership of
@out_buf.
@ -1992,6 +2617,31 @@ the outgoing buffer when it didn't have a timestamp already.</doc>
</parameter>
</parameters>
</method>
<method name="set_source_info_enabled"
c:identifier="gst_rtp_base_depayload_set_source_info_enabled"
version="1.16">
<doc xml:space="preserve">Enable or disable adding #GstRTPSourceMeta to depayloaded buffers.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="depayload" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPBaseDepayload</doc>
<type name="RTPBaseDepayload" c:type="GstRTPBaseDepayload*"/>
</instance-parameter>
<parameter name="enable" transfer-ownership="none">
<doc xml:space="preserve">whether to add meta about RTP sources to buffer</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<property name="source-info"
version="1.16"
writable="1"
transfer-ownership="none">
<doc xml:space="preserve">Add RTP source information found in RTP header as meta to output buffer.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="stats" transfer-ownership="none">
<doc xml:space="preserve">Various depayloader statistics retrieved atomically (and are therefore
synchroized with each other). This property return a GstStructure named
@ -2225,6 +2875,58 @@ the last processed buffer and current state of the stream being depayloaded:
</parameter>
</parameters>
</virtual-method>
<method name="allocate_output_buffer"
c:identifier="gst_rtp_base_payload_allocate_output_buffer"
version="1.16">
<doc xml:space="preserve">Allocate a new #GstBuffer with enough data to hold an RTP packet with
minimum @csrc_count CSRCs, a payload length of @payload_len and padding of
@pad_len. If @payload has #GstRTPBasePayload:source-info %TRUE additional
CSRCs may be allocated and filled with RTP source information.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly allocated buffer that can hold an RTP packet with given
parameters.</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</return-value>
<parameters>
<instance-parameter name="payload" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPBasePayload</doc>
<type name="RTPBasePayload" c:type="GstRTPBasePayload*"/>
</instance-parameter>
<parameter name="payload_len" transfer-ownership="none">
<doc xml:space="preserve">the length of the payload</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="pad_len" transfer-ownership="none">
<doc xml:space="preserve">the amount of padding</doc>
<type name="guint8" c:type="guint8"/>
</parameter>
<parameter name="csrc_count" transfer-ownership="none">
<doc xml:space="preserve">the minimum number of CSRC entries</doc>
<type name="guint8" c:type="guint8"/>
</parameter>
</parameters>
</method>
<method name="get_source_count"
c:identifier="gst_rtp_base_payload_get_source_count"
version="1.16">
<doc xml:space="preserve">Count the total number of RTP sources found in the meta of @buffer, which
will be automically added by gst_rtp_base_payload_allocate_output_buffer().
If #GstRTPBasePayload:source-info is %FALSE the count will be 0.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The number of sources.</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="payload" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPBasePayload</doc>
<type name="RTPBasePayload" c:type="GstRTPBasePayload*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">a #GstBuffer, typically the buffer to payload</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
</parameters>
</method>
<method name="is_filled" c:identifier="gst_rtp_base_payload_is_filled">
<doc xml:space="preserve">Check if the packet with @size and @duration would exceed the configured
maximum size.</doc>
@ -2248,6 +2950,22 @@ configured MTU or max_ptime.</doc>
</parameter>
</parameters>
</method>
<method name="is_source_info_enabled"
c:identifier="gst_rtp_base_payload_is_source_info_enabled"
version="1.16">
<doc xml:space="preserve">Queries whether the payloader will add contributing sources (CSRCs) to the
RTP header from #GstRTPSourceMeta.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if source-info is enabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="payload" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPBasePayload</doc>
<type name="RTPBasePayload" c:type="GstRTPBasePayload*"/>
</instance-parameter>
</parameters>
</method>
<method name="push" c:identifier="gst_rtp_base_payload_push">
<doc xml:space="preserve">Push @buffer to the peer element of the payloader. The SSRC, payload type,
seqnum and timestamp of the RTP buffer will be updated first.
@ -2345,6 +3063,25 @@ Variable arguments should be in the form field name, field type
</parameter>
</parameters>
</method>
<method name="set_source_info_enabled"
c:identifier="gst_rtp_base_payload_set_source_info_enabled"
version="1.16">
<doc xml:space="preserve">Enable or disable adding contributing sources to RTP packets from
#GstRTPSourceMeta.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="payload" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPBasePayload</doc>
<type name="RTPBasePayload" c:type="GstRTPBasePayload*"/>
</instance-parameter>
<parameter name="enable" transfer-ownership="none">
<doc xml:space="preserve">whether to add contributing sources to RTP packets</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<property name="max-ptime" writable="1" transfer-ownership="none">
<type name="gint64" c:type="gint64"/>
</property>
@ -2386,6 +3123,14 @@ timestamps for audio streams.</doc>
<property name="seqnum-offset" writable="1" transfer-ownership="none">
<type name="gint" c:type="gint"/>
</property>
<property name="source-info"
version="1.16"
writable="1"
transfer-ownership="none">
<doc xml:space="preserve">Enable writing the CSRC field in allocated RTP header based on RTP source
information found in the input buffer's #GstRTPSourceMeta.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="ssrc" writable="1" transfer-ownership="none">
<type name="guint" c:type="guint"/>
</property>
@ -3952,6 +4697,96 @@ types specified with @payload_type.</doc>
<doc xml:space="preserve">the secure Audio/Visual profile with feedback (RFC 5124)</doc>
</member>
</enumeration>
<record name="RTPSourceMeta" c:type="GstRTPSourceMeta" version="1.16">
<doc xml:space="preserve">Meta describing the source(s) of the buffer.</doc>
<field name="meta" writable="1">
<doc xml:space="preserve">parent #GstMeta</doc>
<type name="Gst.Meta" c:type="GstMeta"/>
</field>
<field name="ssrc" writable="1">
<doc xml:space="preserve">the SSRC</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="ssrc_valid" writable="1">
<doc xml:space="preserve">whether @ssrc is set and valid</doc>
<type name="gboolean" c:type="gboolean"/>
</field>
<field name="csrc" writable="1">
<doc xml:space="preserve">pointer to the CSRCs</doc>
<array zero-terminated="0" c:type="guint32" fixed-size="15">
<type name="guint32" c:type="guint32"/>
</array>
</field>
<field name="csrc_count" writable="1">
<doc xml:space="preserve">number of elements in @csrc</doc>
<type name="guint" c:type="guint"/>
</field>
<method name="append_csrc"
c:identifier="gst_rtp_source_meta_append_csrc"
version="1.16">
<doc xml:space="preserve">Appends @csrc to the list of contributing sources in @meta.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if all elements in @csrc was added, %FALSE otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="meta" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPSourceMeta</doc>
<type name="RTPSourceMeta" c:type="GstRTPSourceMeta*"/>
</instance-parameter>
<parameter name="csrc" transfer-ownership="none">
<doc xml:space="preserve">the csrcs to append</doc>
<type name="guint32" c:type="const guint32*"/>
</parameter>
<parameter name="csrc_count" transfer-ownership="none">
<doc xml:space="preserve">number of elements in @csrc</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</method>
<method name="get_source_count"
c:identifier="gst_rtp_source_meta_get_source_count"
version="1.16">
<doc xml:space="preserve">Count the total number of RTP sources found in @meta, both SSRC and CSRC.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The number of RTP sources</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="meta" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPSourceMeta</doc>
<type name="RTPSourceMeta" c:type="const GstRTPSourceMeta*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_ssrc"
c:identifier="gst_rtp_source_meta_set_ssrc"
version="1.16">
<doc xml:space="preserve">Sets @ssrc in @meta. If @ssrc is %NULL the ssrc of @meta will be unset.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="meta" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTPSourceMeta</doc>
<type name="RTPSourceMeta" c:type="GstRTPSourceMeta*"/>
</instance-parameter>
<parameter name="ssrc"
transfer-ownership="none"
nullable="1"
allow-none="1">
<doc xml:space="preserve">pointer to the SSRC</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<function name="get_info" c:identifier="gst_rtp_source_meta_get_info">
<return-value transfer-ownership="none">
<type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
</return-value>
</function>
</record>
<constant name="RTP_HDREXT_BASE"
value="urn:ietf:params:rtp-hdrext:"
c:type="GST_RTP_HDREXT_BASE">
@ -4148,10 +4983,64 @@ types specified with @payload_type.</doc>
c:type="GST_RTP_PAYLOAD_TS48_STRING">
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="RTP_SOURCE_META_MAX_CSRC_COUNT"
value="15"
c:type="GST_RTP_SOURCE_META_MAX_CSRC_COUNT">
<type name="gint" c:type="gint"/>
</constant>
<constant name="RTP_VERSION" value="2" c:type="GST_RTP_VERSION">
<doc xml:space="preserve">The supported RTP version 2.</doc>
<type name="gint" c:type="gint"/>
</constant>
<function name="buffer_add_rtp_source_meta"
c:identifier="gst_buffer_add_rtp_source_meta"
version="1.16">
<doc xml:space="preserve">Attaches RTP source information to @buffer.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the #GstRTPSourceMeta on @buffer.</doc>
<type name="RTPSourceMeta" c:type="GstRTPSourceMeta*"/>
</return-value>
<parameters>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">a #GstBuffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="ssrc"
transfer-ownership="none"
nullable="1"
allow-none="1">
<doc xml:space="preserve">pointer to the SSRC</doc>
<type name="guint32" c:type="const guint32*"/>
</parameter>
<parameter name="csrc"
transfer-ownership="none"
nullable="1"
allow-none="1">
<doc xml:space="preserve">pointer to the CSRCs</doc>
<type name="guint32" c:type="const guint32*"/>
</parameter>
<parameter name="csrc_count" transfer-ownership="none">
<doc xml:space="preserve">number of elements in @csrc</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="buffer_get_rtp_source_meta"
c:identifier="gst_buffer_get_rtp_source_meta"
version="1.16">
<doc xml:space="preserve">Find the #GstRTPSourceMeta on @buffer.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the #GstRTPSourceMeta or %NULL when there
is no such metadata on @buffer.</doc>
<type name="RTPSourceMeta" c:type="GstRTPSourceMeta*"/>
</return-value>
<parameters>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">a #GstBuffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
</parameters>
</function>
<function name="rtcp_buffer_map"
c:identifier="gst_rtcp_buffer_map"
moved-to="RTCPBuffer.map">
@ -4820,5 +5709,18 @@ types specified with @payload_type.</doc>
</parameter>
</parameters>
</function>
<function name="rtp_source_meta_api_get_type"
c:identifier="gst_rtp_source_meta_api_get_type">
<return-value transfer-ownership="none">
<type name="GType" c:type="GType"/>
</return-value>
</function>
<function name="rtp_source_meta_get_info"
c:identifier="gst_rtp_source_meta_get_info"
moved-to="RTPSourceMeta.get_info">
<return-value transfer-ownership="none">
<type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
</return-value>
</function>
</namespace>
</repository>

View file

@ -8,6 +8,7 @@ and/or use gtk-doc annotations. -->
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
<include name="Gio" version="2.0"/>
<include name="Gst" version="1.0"/>
<include name="GstBase" version="1.0"/>
<include name="GstSdp" version="1.0"/>
<package name="gstreamer-rtsp-1.0"/>
<c:include name="gst/rtsp/rtsp.h"/>
@ -21,13 +22,17 @@ and/or use gtk-doc annotations. -->
glib:type-name="GstRTSPAuthCredential"
glib:get-type="gst_rtsp_auth_credential_get_type"
c:symbol-prefix="rtsp_auth_credential">
<doc xml:space="preserve">RTSP Authentication credentials</doc>
<field name="scheme" writable="1">
<doc xml:space="preserve">a #GstRTSPAuthMethod</doc>
<type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
</field>
<field name="params" writable="1">
<doc xml:space="preserve">A NULL-terminated array of #GstRTSPAuthParam</doc>
<type name="RTSPAuthParam" c:type="GstRTSPAuthParam**"/>
</field>
<field name="authorization" writable="1">
<doc xml:space="preserve">The authorization for the basic schem</doc>
<type name="utf8" c:type="gchar*"/>
</field>
</record>
@ -60,10 +65,13 @@ and/or use gtk-doc annotations. -->
glib:type-name="GstRTSPAuthParam"
glib:get-type="gst_rtsp_auth_param_get_type"
c:symbol-prefix="rtsp_auth_param">
<doc xml:space="preserve">RTSP Authentication parameter</doc>
<field name="name" writable="1">
<doc xml:space="preserve">The name of the parameter</doc>
<type name="utf8" c:type="gchar*"/>
</field>
<field name="value" writable="1">
<doc xml:space="preserve">The value of the parameter</doc>
<type name="utf8" c:type="gchar*"/>
</field>
<method name="copy" c:identifier="gst_rtsp_auth_param_copy">
@ -545,6 +553,39 @@ This function can be cancelled with gst_rtsp_connection_flush().</doc>
</parameter>
</parameters>
</method>
<method name="send_messages"
c:identifier="gst_rtsp_connection_send_messages"
version="1.16">
<doc xml:space="preserve">Attempt to send @messages 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().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
</return-value>
<parameters>
<instance-parameter name="conn" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTSPConnection</doc>
<type name="RTSPConnection" c:type="GstRTSPConnection*"/>
</instance-parameter>
<parameter name="messages" transfer-ownership="none">
<doc xml:space="preserve">the messages to send</doc>
<array length="1" zero-terminated="0" c:type="GstRTSPMessage*">
<type name="RTSPMessage" c:type="GstRTSPMessage"/>
</array>
</parameter>
<parameter name="n_messages" transfer-ownership="none">
<doc xml:space="preserve">the number of messages to send</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="timeout" transfer-ownership="none">
<doc xml:space="preserve">a timeout value or %NULL</doc>
<type name="GLib.TimeVal" c:type="GTimeVal*"/>
</parameter>
</parameters>
</method>
<method name="set_accept_certificate_func"
c:identifier="gst_rtsp_connection_set_accept_certificate_func"
version="1.14">
@ -1290,6 +1331,7 @@ read from @socket which should be used before starting to read new data.</doc>
<record name="RTSPExtensionInterface"
c:type="GstRTSPExtensionInterface"
glib:is-gtype-struct-for="RTSPExtension">
<doc xml:space="preserve">An interface representing RTSP extensions.</doc>
<field name="parent">
<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
</field>
@ -2023,8 +2065,11 @@ read from @socket which should be used before starting to read new data.</doc>
<field name="body_size" readable="0" private="1">
<type name="guint" c:type="guint"/>
</field>
<field name="body_buffer" readable="0" private="1">
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</field>
<field name="_gst_reserved" readable="0" private="1">
<array zero-terminated="0" c:type="gpointer" fixed-size="4">
<array zero-terminated="0" c:type="gpointer" fixed-size="3">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
@ -2142,7 +2187,11 @@ for transmission.</doc>
</method>
<method name="get_body" c:identifier="gst_rtsp_message_get_body">
<doc xml:space="preserve">Get the body of @msg. @data remains valid for as long as @msg is valid and
unchanged.</doc>
unchanged.
If the message body was set as a #GstBuffer before this will cause the data
to be copied and stored in the message. The #GstBuffer will no longer be
kept in the message.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
@ -2170,6 +2219,33 @@ unchanged.</doc>
</parameter>
</parameters>
</method>
<method name="get_body_buffer"
c:identifier="gst_rtsp_message_get_body_buffer"
version="1.16">
<doc xml:space="preserve">Get the body of @msg. @buffer remains valid for as long as @msg is valid and
unchanged.
If body data was set from raw memory instead of a #GstBuffer this function
will always return %NULL. The caller can check if there is a body buffer by
calling gst_rtsp_message_has_body_buffer().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
</return-value>
<parameters>
<instance-parameter name="msg" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTSPMessage</doc>
<type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
</instance-parameter>
<parameter name="buffer"
direction="out"
caller-allocates="0"
transfer-ownership="none">
<doc xml:space="preserve">location for the buffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer**"/>
</parameter>
</parameters>
</method>
<method name="get_header" c:identifier="gst_rtsp_message_get_header">
<doc xml:space="preserve">Get the @indx header value with key @field from @msg. The result in @value
stays valid as long as it remains present in @msg.</doc>
@ -2245,6 +2321,22 @@ was not found.</doc>
</instance-parameter>
</parameters>
</method>
<method name="has_body_buffer"
c:identifier="gst_rtsp_message_has_body_buffer"
version="1.16">
<doc xml:space="preserve">Checks if @msg has a body and the body is stored as #GstBuffer.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @msg has a body and it's stored as #GstBuffer, %FALSE
otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="msg" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTSPMessage</doc>
<type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
</instance-parameter>
</parameters>
</method>
<method name="init" c:identifier="gst_rtsp_message_init">
<doc xml:space="preserve">Initialize @msg. This function is mostly used when @msg is allocated on the
stack. The reverse operation of this is gst_rtsp_message_unset().</doc>
@ -2515,7 +2607,8 @@ all matching headers will be removed.</doc>
</parameters>
</method>
<method name="set_body" c:identifier="gst_rtsp_message_set_body">
<doc xml:space="preserve">Set the body of @msg to a copy of @data.</doc>
<doc xml:space="preserve">Set the body of @msg to a copy of @data. Any existing body or body buffer
will be replaced by the new body.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
@ -2537,6 +2630,26 @@ all matching headers will be removed.</doc>
</parameter>
</parameters>
</method>
<method name="set_body_buffer"
c:identifier="gst_rtsp_message_set_body_buffer"
version="1.16">
<doc xml:space="preserve">Set the body of @msg to @buffer. Any existing body or body buffer
will be replaced by the new body.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
</return-value>
<parameters>
<instance-parameter name="msg" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTSPMessage</doc>
<type name="RTSPMessage" c:type="GstRTSPMessage*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve">a #GstBuffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
</parameters>
</method>
<method name="steal_body" c:identifier="gst_rtsp_message_steal_body">
<doc xml:space="preserve">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.</doc>
@ -2567,9 +2680,36 @@ the body and size of @msg will be set to %NULL and 0 respectively.</doc>
</parameter>
</parameters>
</method>
<method name="steal_body_buffer"
c:identifier="gst_rtsp_message_steal_body_buffer"
version="1.16">
<doc xml:space="preserve">Take the body of @msg and store it in @buffer. After this method,
the body and size of @msg will be set to %NULL and 0 respectively.
If body data was set from raw memory instead of a #GstBuffer this function
will always return %NULL. The caller can check if there is a body buffer by
calling gst_rtsp_message_has_body_buffer().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
</return-value>
<parameters>
<instance-parameter name="msg" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTSPMessage</doc>
<type name="RTSPMessage" c:type="GstRTSPMessage*"/>
</instance-parameter>
<parameter name="buffer"
direction="out"
caller-allocates="0"
transfer-ownership="full">
<doc xml:space="preserve">location for the buffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer**"/>
</parameter>
</parameters>
</method>
<method name="take_body" c:identifier="gst_rtsp_message_take_body">
<doc xml:space="preserve">Set the body of @msg to @data and @size. This method takes ownership of
@data.</doc>
@data. Any existing body or body buffer will be replaced by the new body.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
@ -2591,6 +2731,26 @@ the body and size of @msg will be set to %NULL and 0 respectively.</doc>
</parameter>
</parameters>
</method>
<method name="take_body_buffer"
c:identifier="gst_rtsp_message_take_body_buffer"
version="1.16">
<doc xml:space="preserve">Set the body of @msg to @buffer. This method takes ownership of @buffer.
Any existing body or body buffer will be replaced by the new body.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
</return-value>
<parameters>
<instance-parameter name="msg" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTSPMessage</doc>
<type name="RTSPMessage" c:type="GstRTSPMessage*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="full">
<doc xml:space="preserve">a #GstBuffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
</parameters>
</method>
<method name="take_header" c:identifier="gst_rtsp_message_take_header">
<doc xml:space="preserve">Add a header with key @field and @value to @msg. This function takes
ownership of @value.</doc>
@ -4011,6 +4171,46 @@ callback.</doc>
</parameter>
</parameters>
</method>
<method name="send_messages"
c:identifier="gst_rtsp_watch_send_messages"
version="1.16">
<doc xml:space="preserve">Sends @messages using the connection of the @watch. If they cannot be sent
immediately, they will be queued for transmission in @watch. The contents of
@messages will then be serialized and transmitted when the connection of the
@watch becomes writable. In case the @messages are queued, the ID returned in
@id will be non-zero and used as the ID argument in the message_sent
callback once the last message is sent. The callback will only be called
once for the last message.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
<type name="RTSPResult" c:type="GstRTSPResult"/>
</return-value>
<parameters>
<instance-parameter name="watch" transfer-ownership="none">
<doc xml:space="preserve">a #GstRTSPWatch</doc>
<type name="RTSPWatch" c:type="GstRTSPWatch*"/>
</instance-parameter>
<parameter name="messages" transfer-ownership="none">
<doc xml:space="preserve">the messages to send</doc>
<array length="1" zero-terminated="0" c:type="GstRTSPMessage*">
<type name="RTSPMessage" c:type="GstRTSPMessage"/>
</array>
</parameter>
<parameter name="n_messages" transfer-ownership="none">
<doc xml:space="preserve">the number of messages to send</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="id"
direction="out"
caller-allocates="0"
transfer-ownership="full"
optional="1"
allow-none="1">
<doc xml:space="preserve">location for a message ID or %NULL</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</method>
<method name="set_flushing"
c:identifier="gst_rtsp_watch_set_flushing"
version="1.4">
@ -4573,6 +4773,46 @@ Currently only supported algorithm "md5".</doc>
</parameter>
</parameters>
</function>
<function name="rtsp_generate_digest_auth_response_from_md5"
c:identifier="gst_rtsp_generate_digest_auth_response_from_md5"
version="1.16">
<doc xml:space="preserve">Calculates the digest auth response from the values given by the server and
the md5sum. See RFC2069 for details.
This function is useful when the passwords are not stored in clear text,
but instead in the same format as the .htdigest file.
Currently only supported algorithm "md5".</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">Authentication response or %NULL if unsupported</doc>
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="algorithm"
transfer-ownership="none"
nullable="1"
allow-none="1">
<doc xml:space="preserve">Hash algorithm to use, or %NULL for MD5</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="method" transfer-ownership="none">
<doc xml:space="preserve">Request method, e.g. PLAY</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="md5" transfer-ownership="none">
<doc xml:space="preserve">The md5 sum of username:realm:password</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="uri" transfer-ownership="none">
<doc xml:space="preserve">Original request URI</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="nonce" transfer-ownership="none">
<doc xml:space="preserve">Nonce</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</function>
<function name="rtsp_header_allow_multiple"
c:identifier="gst_rtsp_header_allow_multiple">
<doc xml:space="preserve">Check whether @field may appear multiple times in a message.</doc>

View file

@ -100,6 +100,7 @@ protocol sessions.</doc>
<member name="mikey_map_type_srtp"
value="0"
c:identifier="GST_MIKEY_MAP_TYPE_SRTP">
<doc xml:space="preserve">SRTP</doc>
</member>
</enumeration>
<record name="MIKEYMessage"
@ -656,7 +657,7 @@ will be appended to @msg.</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
<parameter name="map_type" transfer-ownership="none">
<doc xml:space="preserve">the #GstMIKEYCSIDMapType</doc>
<doc xml:space="preserve">the #GstMIKEYMapType</doc>
<type name="MIKEYMapType" c:type="GstMIKEYMapType"/>
</parameter>
</parameters>
@ -1177,6 +1178,7 @@ payload to the KEMAC.</doc>
<type name="MIKEYPayload" c:type="GstMIKEYPayload"/>
</field>
<field name="key_type" writable="1">
<doc xml:space="preserve">the #GstMIKEYKeyDataType of @key_data</doc>
<type name="MIKEYKeyDataType" c:type="GstMIKEYKeyDataType"/>
</field>
<field name="key_len" writable="1">
@ -1184,6 +1186,7 @@ payload to the KEMAC.</doc>
<type name="guint16" c:type="guint16"/>
</field>
<field name="key_data" writable="1">
<doc xml:space="preserve">the key data</doc>
<type name="guint8" c:type="guint8*"/>
</field>
<field name="salt_len" writable="1">
@ -1264,7 +1267,7 @@ specific security protocol</doc>
<type name="MIKEYSecProto" c:type="GstMIKEYSecProto"/>
</field>
<field name="params" writable="1">
<doc xml:space="preserve">array of #GstMIKEYPayloadPSParam</doc>
<doc xml:space="preserve">array of #GstMIKEYPayloadSPParam</doc>
<array name="GLib.Array" c:type="GArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
@ -1353,6 +1356,7 @@ specific security protocol</doc>
<member name="mikey_sec_proto_srtp"
value="0"
c:identifier="GST_MIKEY_SEC_PROTO_SRTP">
<doc xml:space="preserve">SRTP</doc>
</member>
</enumeration>
<enumeration name="MIKEYSecSRTP" c:type="GstMIKEYSecSRTP">
@ -3355,11 +3359,11 @@ When -1 is given as @idx, the zone is inserted at the end.</doc>
<type name="SDPMessage" c:type="GstSDPMessage*"/>
</instance-parameter>
<parameter name="idx" transfer-ownership="none">
<doc xml:space="preserve">an index
@zone a #GstSDPZone</doc>
<doc xml:space="preserve">an index</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="zone" transfer-ownership="none">
<doc xml:space="preserve">a #GstSDPZone</doc>
<type name="SDPZone" c:type="GstSDPZone*"/>
</parameter>
</parameters>
@ -3906,6 +3910,28 @@ stack and initialized with gst_sdp_message_init().</doc>
</parameter>
</parameters>
</function>
<function name="new_from_text"
c:identifier="gst_sdp_message_new_from_text"
version="1.16">
<doc xml:space="preserve">Parse @text and create a new SDPMessage from these.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a #GstSDPResult.</doc>
<type name="SDPResult" c:type="GstSDPResult"/>
</return-value>
<parameters>
<parameter name="text" transfer-ownership="none">
<doc xml:space="preserve">A dynamically allocated string representing the SDP description</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="msg"
direction="out"
caller-allocates="0"
transfer-ownership="full">
<doc xml:space="preserve">pointer to new #GstSDPMessage</doc>
<type name="SDPMessage" c:type="GstSDPMessage**"/>
</parameter>
</parameters>
</function>
<function name="parse_buffer"
c:identifier="gst_sdp_message_parse_buffer">
<doc xml:space="preserve">Parse the contents of @size bytes pointed to by @data and store the result in
@ -4261,6 +4287,29 @@ a=rtcp-fb:(payload) (param1) [param2]...</doc>
</parameter>
</parameters>
</function>
<function name="sdp_message_new_from_text"
c:identifier="gst_sdp_message_new_from_text"
moved-to="SDPMessage.new_from_text"
version="1.16">
<doc xml:space="preserve">Parse @text and create a new SDPMessage from these.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a #GstSDPResult.</doc>
<type name="SDPResult" c:type="GstSDPResult"/>
</return-value>
<parameters>
<parameter name="text" transfer-ownership="none">
<doc xml:space="preserve">A dynamically allocated string representing the SDP description</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="msg"
direction="out"
caller-allocates="0"
transfer-ownership="full">
<doc xml:space="preserve">pointer to new #GstSDPMessage</doc>
<type name="SDPMessage" c:type="GstSDPMessage**"/>
</parameter>
</parameters>
</function>
<function name="sdp_message_parse_buffer"
c:identifier="gst_sdp_message_parse_buffer"
moved-to="SDPMessage.parse_buffer">

File diff suppressed because it is too large Load diff

View file

@ -15,6 +15,37 @@ and/or use gtk-doc annotations. -->
shared-library="libgstwebrtc-1.0.so.0"
c:identifier-prefixes="Gst"
c:symbol-prefixes="gst">
<enumeration name="WebRTCBundlePolicy"
glib:type-name="GstWebRTCBundlePolicy"
glib:get-type="gst_webrtc_bundle_policy_get_type"
c:type="GstWebRTCBundlePolicy">
<doc xml:space="preserve">GST_WEBRTC_BUNDLE_POLICY_NONE: none
GST_WEBRTC_BUNDLE_POLICY_BALANCED: balanced
GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT: max-compat
GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE: max-bundle
See https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24#section-4.1.1
for more information.</doc>
<member name="none"
value="0"
c:identifier="GST_WEBRTC_BUNDLE_POLICY_NONE"
glib:nick="none">
</member>
<member name="balanced"
value="1"
c:identifier="GST_WEBRTC_BUNDLE_POLICY_BALANCED"
glib:nick="balanced">
</member>
<member name="max_compat"
value="2"
c:identifier="GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT"
glib:nick="max-compat">
</member>
<member name="max_bundle"
value="3"
c:identifier="GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE"
glib:nick="max-bundle">
</member>
</enumeration>
<enumeration name="WebRTCDTLSSetup"
glib:type-name="GstWebRTCDTLSSetup"
glib:get-type="gst_webrtc_dtls_setup_get_type"
@ -140,7 +171,7 @@ GST_WEBRTC_DTLS_SETUP_PASSIVE: recvonly</doc>
c:type="GstWebRTCDTLSTransportClass"
glib:is-gtype-struct-for="WebRTCDTLSTransport">
<field name="parent_class">
<type name="Gst.BinClass" c:type="GstBinClass"/>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_padding">
<array zero-terminated="0" c:type="gpointer" fixed-size="4">
@ -183,6 +214,42 @@ GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED: connected</doc>
glib:nick="connected">
</member>
</enumeration>
<enumeration name="WebRTCDataChannelState"
glib:type-name="GstWebRTCDataChannelState"
glib:get-type="gst_webrtc_data_channel_state_get_type"
c:type="GstWebRTCDataChannelState">
<doc xml:space="preserve">GST_WEBRTC_DATA_CHANNEL_STATE_NEW: new
GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING: connection
GST_WEBRTC_DATA_CHANNEL_STATE_OPEN: open
GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING: closing
GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED: closed
See &lt;ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcdatachannelstate"&gt;http://w3c.github.io/webrtc-pc/#dom-rtcdatachannelstate&lt;/ulink&gt;</doc>
<member name="new"
value="0"
c:identifier="GST_WEBRTC_DATA_CHANNEL_STATE_NEW"
glib:nick="new">
</member>
<member name="connecting"
value="1"
c:identifier="GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING"
glib:nick="connecting">
</member>
<member name="open"
value="2"
c:identifier="GST_WEBRTC_DATA_CHANNEL_STATE_OPEN"
glib:nick="open">
</member>
<member name="closing"
value="3"
c:identifier="GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING"
glib:nick="closing">
</member>
<member name="closed"
value="4"
c:identifier="GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED"
glib:nick="closed">
</member>
</enumeration>
<enumeration name="WebRTCFECType"
glib:type-name="GstWebRTCFECType"
glib:get-type="gst_webrtc_fec_type_get_type"
@ -445,7 +512,7 @@ GST_WEBRTC_ICE_ROLE_CONTROLLING: controlling</doc>
c:type="GstWebRTCICETransportClass"
glib:is-gtype-struct-for="WebRTCICETransport">
<field name="parent_class">
<type name="Gst.BinClass" c:type="GstBinClass"/>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="gather_candidates">
<callback name="gather_candidates">
@ -465,6 +532,25 @@ GST_WEBRTC_ICE_ROLE_CONTROLLING: controlling</doc>
</array>
</field>
</record>
<enumeration name="WebRTCICETransportPolicy"
glib:type-name="GstWebRTCICETransportPolicy"
glib:get-type="gst_webrtc_ice_transport_policy_get_type"
c:type="GstWebRTCICETransportPolicy">
<doc xml:space="preserve">GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL: all
GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY: relay
See https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24#section-4.1.1
for more information.</doc>
<member name="all"
value="0"
c:identifier="GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL"
glib:nick="all">
</member>
<member name="relay"
value="1"
c:identifier="GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY"
glib:nick="relay">
</member>
</enumeration>
<enumeration name="WebRTCPeerConnectionState"
glib:type-name="GstWebRTCPeerConnectionState"
glib:get-type="gst_webrtc_peer_connection_state_get_type"
@ -507,6 +593,36 @@ See &lt;ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcpeerconnectionstate"&g
glib:nick="closed">
</member>
</enumeration>
<enumeration name="WebRTCPriorityType"
glib:type-name="GstWebRTCPriorityType"
glib:get-type="gst_webrtc_priority_type_get_type"
c:type="GstWebRTCPriorityType">
<doc xml:space="preserve">GST_WEBRTC_PRIORITY_TYPE_VERY_LOW: very-low
GST_WEBRTC_PRIORITY_TYPE_LOW: low
GST_WEBRTC_PRIORITY_TYPE_MEDIUM: medium
GST_WEBRTC_PRIORITY_TYPE_HIGH: high
See &lt;ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcprioritytype"&gt;http://w3c.github.io/webrtc-pc/#dom-rtcprioritytype&lt;/ulink&gt;</doc>
<member name="very_low"
value="1"
c:identifier="GST_WEBRTC_PRIORITY_TYPE_VERY_LOW"
glib:nick="very-low">
</member>
<member name="low"
value="2"
c:identifier="GST_WEBRTC_PRIORITY_TYPE_LOW"
glib:nick="low">
</member>
<member name="medium"
value="3"
c:identifier="GST_WEBRTC_PRIORITY_TYPE_MEDIUM"
glib:nick="medium">
</member>
<member name="high"
value="4"
c:identifier="GST_WEBRTC_PRIORITY_TYPE_HIGH"
glib:nick="high">
</member>
</enumeration>
<class name="WebRTCRTPReceiver"
c:symbol-prefix="webrtc_rtp_receiver"
c:type="GstWebRTCRTPReceiver"
@ -749,6 +865,36 @@ See &lt;ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcpeerconnectionstate"&g
glib:nick="sendrecv">
</member>
</enumeration>
<enumeration name="WebRTCSCTPTransportState"
glib:type-name="GstWebRTCSCTPTransportState"
glib:get-type="gst_webrtc_sctp_transport_state_get_type"
c:type="GstWebRTCSCTPTransportState">
<doc xml:space="preserve">GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW: new
GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING: connecting
GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED: connected
GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED: closed
See &lt;ulink url="http://w3c.github.io/webrtc-pc/#dom-rtcsctptransportstate"&gt;http://w3c.github.io/webrtc-pc/#dom-rtcsctptransportstate&lt;/ulink&gt;</doc>
<member name="new"
value="0"
c:identifier="GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW"
glib:nick="new">
</member>
<member name="connecting"
value="1"
c:identifier="GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING"
glib:nick="connecting">
</member>
<member name="connected"
value="2"
c:identifier="GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED"
glib:nick="connected">
</member>
<member name="closed"
value="3"
c:identifier="GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED"
glib:nick="closed">
</member>
</enumeration>
<enumeration name="WebRTCSDPType"
glib:type-name="GstWebRTCSDPType"
glib:get-type="gst_webrtc_sdp_type_get_type"
@ -819,7 +965,7 @@ See &lt;ulink url="http://w3c.github.io/webrtc-pc/#rtcsdptype"&gt;http://w3c.git
<doc xml:space="preserve">a #GstWebRTCSDPType</doc>
<type name="WebRTCSDPType" c:type="GstWebRTCSDPType"/>
</parameter>
<parameter name="sdp" transfer-ownership="none">
<parameter name="sdp" transfer-ownership="full">
<doc xml:space="preserve">a #GstSDPMessage</doc>
<type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
</parameter>

View file

@ -134,6 +134,16 @@ namespace Gst.App {
}
}
[GLib.Signal("try-pull-sample")]
public event Gst.App.TryPullSampleEventHandler TryPullSampleEvent {
add {
this.AddSignalHandler ("try-pull-sample", value, typeof (Gst.App.TryPullSampleEventArgs));
}
remove {
this.RemoveSignalHandler ("try-pull-sample", value);
}
}
[GLib.Signal("eos")]
public event System.EventHandler Eos {
add {
@ -154,13 +164,13 @@ namespace Gst.App {
}
}
[GLib.Signal("try-pull-sample")]
public event Gst.App.TryPullSampleEventHandler TryPullSampleEvent {
[GLib.Signal("new-preroll")]
public event Gst.App.NewPrerollHandler NewPreroll {
add {
this.AddSignalHandler ("try-pull-sample", value, typeof (Gst.App.TryPullSampleEventArgs));
this.AddSignalHandler ("new-preroll", value, typeof (Gst.App.NewPrerollArgs));
}
remove {
this.RemoveSignalHandler ("try-pull-sample", value);
this.RemoveSignalHandler ("new-preroll", value);
}
}
@ -174,16 +184,6 @@ namespace Gst.App {
}
}
[GLib.Signal("new-preroll")]
public event Gst.App.NewPrerollHandler NewPreroll {
add {
this.AddSignalHandler ("new-preroll", value, typeof (Gst.App.NewPrerollArgs));
}
remove {
this.RemoveSignalHandler ("new-preroll", value);
}
}
static EosNativeDelegate Eos_cb_delegate;
static EosNativeDelegate EosVMCallback {
get {

View file

@ -228,23 +228,13 @@ namespace Gst.App {
}
}
[GLib.Signal("end-of-stream")]
public event Gst.App.EndOfStreamEventHandler EndOfStreamEvent {
[GLib.Signal("seek-data")]
public event Gst.App.SeekDataHandler SeekData {
add {
this.AddSignalHandler ("end-of-stream", value, typeof (Gst.App.EndOfStreamEventArgs));
this.AddSignalHandler ("seek-data", value, typeof (Gst.App.SeekDataArgs));
}
remove {
this.RemoveSignalHandler ("end-of-stream", value);
}
}
[GLib.Signal("push-buffer")]
public event Gst.App.PushBufferEventHandler PushBufferEvent {
add {
this.AddSignalHandler ("push-buffer", value, typeof (Gst.App.PushBufferEventArgs));
}
remove {
this.RemoveSignalHandler ("push-buffer", value);
this.RemoveSignalHandler ("seek-data", value);
}
}
@ -278,6 +268,26 @@ namespace Gst.App {
}
}
[GLib.Signal("end-of-stream")]
public event Gst.App.EndOfStreamEventHandler EndOfStreamEvent {
add {
this.AddSignalHandler ("end-of-stream", value, typeof (Gst.App.EndOfStreamEventArgs));
}
remove {
this.RemoveSignalHandler ("end-of-stream", value);
}
}
[GLib.Signal("push-buffer")]
public event Gst.App.PushBufferEventHandler PushBufferEvent {
add {
this.AddSignalHandler ("push-buffer", value, typeof (Gst.App.PushBufferEventArgs));
}
remove {
this.RemoveSignalHandler ("push-buffer", value);
}
}
[GLib.Signal("push-buffer-list")]
public event Gst.App.PushBufferListEventHandler PushBufferListEvent {
add {
@ -288,16 +298,6 @@ namespace Gst.App {
}
}
[GLib.Signal("seek-data")]
public event Gst.App.SeekDataHandler SeekData {
add {
this.AddSignalHandler ("seek-data", value, typeof (Gst.App.SeekDataArgs));
}
remove {
this.RemoveSignalHandler ("seek-data", value);
}
}
static NeedDataNativeDelegate NeedData_cb_delegate;
static NeedDataNativeDelegate NeedDataVMCallback {
get {

View file

@ -0,0 +1,145 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Audio {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct AudioBuffer : IEquatable<AudioBuffer> {
private IntPtr _info;
public Gst.Audio.AudioInfo Info {
get {
return _info == IntPtr.Zero ? null : (Gst.Audio.AudioInfo) GLib.Opaque.GetOpaque (_info, typeof (Gst.Audio.AudioInfo), false);
}
set {
_info = value == null ? IntPtr.Zero : value.Handle;
}
}
private UIntPtr n_samples;
public ulong NSamples {
get {
return (ulong) n_samples;
}
set {
n_samples = new UIntPtr (value);
}
}
public int NPlanes;
private IntPtr _planes;
private IntPtr _buffer;
public Gst.Buffer Buffer {
get {
return _buffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (_buffer, typeof (Gst.Buffer), false);
}
set {
_buffer = value == null ? IntPtr.Zero : value.Handle;
}
}
private IntPtr _map_infos;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=4)]
private IntPtr[] _gstGstReserved;
public static Gst.Audio.AudioBuffer Zero = new Gst.Audio.AudioBuffer ();
public static Gst.Audio.AudioBuffer New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Audio.AudioBuffer.Zero;
return (Gst.Audio.AudioBuffer) Marshal.PtrToStructure (raw, typeof (Gst.Audio.AudioBuffer));
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_audio_buffer_map(IntPtr raw, IntPtr info, IntPtr gstbuffer, int flags);
public bool Map(Gst.Audio.AudioInfo info, Gst.Buffer gstbuffer, Gst.MapFlags flags) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_audio_buffer_map(this_as_native, info == null ? IntPtr.Zero : info.Handle, gstbuffer == null ? IntPtr.Zero : gstbuffer.Handle, (int) flags);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_audio_buffer_unmap(IntPtr raw);
public void Unmap() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_audio_buffer_unmap(this_as_native);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_audio_buffer_clip(IntPtr buffer, IntPtr segment, int rate, int bpf);
public static Gst.Buffer Clip(Gst.Buffer buffer, Gst.Segment segment, int rate, int bpf) {
buffer.Owned = false;
IntPtr native_segment = GLib.Marshaller.StructureToPtrAlloc (segment);
IntPtr raw_ret = gst_audio_buffer_clip(buffer == null ? IntPtr.Zero : buffer.Handle, native_segment, rate, bpf);
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
Marshal.FreeHGlobal (native_segment);
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_audio_buffer_reorder_channels(IntPtr buffer, int format, int channels, int[] from, int[] to);
public static bool ReorderChannels(Gst.Buffer buffer, Gst.Audio.AudioFormat format, int channels, Gst.Audio.AudioChannelPosition[] from, Gst.Audio.AudioChannelPosition[] to) {
int cnt_from = from == null ? 0 : from.Length;
int[] native_from = new int [cnt_from];
for (int i = 0; i < cnt_from; i++)
native_from [i] = (int) from[i];
int cnt_to = to == null ? 0 : to.Length;
int[] native_to = new int [cnt_to];
for (int i = 0; i < cnt_to; i++)
native_to [i] = (int) to[i];
bool raw_ret = gst_audio_buffer_reorder_channels(buffer == null ? IntPtr.Zero : buffer.Handle, (int) format, channels, native_from, native_to);
bool ret = raw_ret;
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_audio_buffer_truncate(IntPtr buffer, int bpf, UIntPtr trim, UIntPtr samples);
public static Gst.Buffer Truncate(Gst.Buffer buffer, int bpf, ulong trim, ulong samples) {
buffer.Owned = false;
IntPtr raw_ret = gst_audio_buffer_truncate(buffer == null ? IntPtr.Zero : buffer.Handle, bpf, new UIntPtr (trim), new UIntPtr (samples));
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
return ret;
}
static void ReadNative (IntPtr native, ref Gst.Audio.AudioBuffer target)
{
target = New (native);
}
public bool Equals (AudioBuffer other)
{
return true && Info.Equals (other.Info) && NSamples.Equals (other.NSamples) && NPlanes.Equals (other.NPlanes) && _planes.Equals (other._planes) && Buffer.Equals (other.Buffer) && _map_infos.Equals (other._map_infos);
}
public override bool Equals (object other)
{
return other is AudioBuffer && Equals ((AudioBuffer) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ Info.GetHashCode () ^ NSamples.GetHashCode () ^ NPlanes.GetHashCode () ^ _planes.GetHashCode () ^ Buffer.GetHashCode () ^ _map_infos.GetHashCode ();
}
private static GLib.GType GType {
get { return GLib.GType.Pointer; }
}
#endregion
}
}

View file

@ -96,6 +96,21 @@ namespace Gst.Audio {
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_audio_converter_is_passthrough(IntPtr raw);
public bool IsPassthrough {
get {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_audio_converter_is_passthrough(this_as_native);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_audio_converter_reset(IntPtr raw);

View file

@ -1532,6 +1532,15 @@ namespace Gst.Audio {
gst_audio_decoder_set_latency(Handle, min, max);
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_audio_decoder_set_output_caps(IntPtr raw, IntPtr caps);
public bool SetOutputCaps(Gst.Caps caps) {
bool raw_ret = gst_audio_decoder_set_output_caps(Handle, caps == null ? IntPtr.Zero : caps.Handle);
bool ret = raw_ret;
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_audio_decoder_set_output_format(IntPtr raw, IntPtr info);

View file

@ -0,0 +1,74 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Audio {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct AudioMeta : IEquatable<AudioMeta> {
public Gst.Meta Meta;
private IntPtr _info;
public Gst.Audio.AudioInfo Info {
get {
return _info == IntPtr.Zero ? null : (Gst.Audio.AudioInfo) GLib.Opaque.GetOpaque (_info, typeof (Gst.Audio.AudioInfo), false);
}
set {
_info = value == null ? IntPtr.Zero : value.Handle;
}
}
private UIntPtr samples;
public ulong Samples {
get {
return (ulong) samples;
}
set {
samples = new UIntPtr (value);
}
}
private UIntPtr offsets;
public ulong Offsets {
get {
return (ulong) offsets;
}
set {
offsets = new UIntPtr (value);
}
}
[MarshalAs (UnmanagedType.ByValArray, SizeConst=4)]
private IntPtr[] _gstGstReserved;
public static Gst.Audio.AudioMeta Zero = new Gst.Audio.AudioMeta ();
public static Gst.Audio.AudioMeta New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Audio.AudioMeta.Zero;
return (Gst.Audio.AudioMeta) Marshal.PtrToStructure (raw, typeof (Gst.Audio.AudioMeta));
}
public bool Equals (AudioMeta other)
{
return true && Meta.Equals (other.Meta) && Info.Equals (other.Info) && Samples.Equals (other.Samples) && Offsets.Equals (other.Offsets);
}
public override bool Equals (object other)
{
return other is AudioMeta && Equals ((AudioMeta) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ Meta.GetHashCode () ^ Info.GetHashCode () ^ Samples.GetHashCode () ^ Offsets.GetHashCode ();
}
private static GLib.GType GType {
get { return GLib.GType.Pointer; }
}
#endregion
}
}

View file

@ -63,15 +63,6 @@ namespace Gst.Audio {
}
}
public ulong Timestamps {
get {
unsafe {
ulong* raw_ptr = (ulong*)(((byte*)Handle) + abi_info.GetFieldOffset("timestamps"));
return (*raw_ptr);
}
}
}
public Gst.Audio.AudioRingBufferSpec Spec {
get {
unsafe {

View file

@ -40,6 +40,16 @@ namespace Gst.Audio {
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_audio_buffer_truncate(IntPtr buffer, int bpf, UIntPtr trim, UIntPtr samples);
public static Gst.Buffer AudioBufferTruncate(Gst.Buffer buffer, int bpf, ulong trim, ulong samples) {
buffer.Owned = false;
IntPtr raw_ret = gst_audio_buffer_truncate(buffer == null ? IntPtr.Zero : buffer.Handle, bpf, new UIntPtr (trim), new UIntPtr (samples));
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern ulong gst_audio_channel_get_fallback_mask(int channels);
@ -241,6 +251,24 @@ namespace Gst.Audio {
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_audio_meta_api_get_type();
public static GLib.GType AudioMetaApiGetType() {
IntPtr raw_ret = gst_audio_meta_api_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_audio_meta_get_info();
public static Gst.MetaInfo AudioMetaGetInfo() {
IntPtr raw_ret = gst_audio_meta_get_info();
Gst.MetaInfo ret = Gst.MetaInfo.New (raw_ret);
return ret;
}
[DllImport("libgstaudio-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_audio_reorder_channels(byte[] data, UIntPtr n_length, int format, int channels, int[] from, int[] to);

View file

@ -35,6 +35,21 @@ namespace Gst.Base {
}
}
[GLib.Property ("min-upstream-latency")]
public ulong MinUpstreamLatency {
get {
GLib.Value val = GetProperty ("min-upstream-latency");
ulong ret = (ulong) val;
val.Dispose ();
return ret;
}
set {
GLib.Value val = new GLib.Value(value);
SetProperty("min-upstream-latency", val);
val.Dispose ();
}
}
[GLib.Property ("start-time")]
public ulong StartTime {
get {
@ -779,14 +794,16 @@ namespace Gst.Base {
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate int UpdateSrcCapsNativeDelegate (IntPtr inst, IntPtr caps, IntPtr _ret);
delegate int UpdateSrcCapsNativeDelegate (IntPtr inst, IntPtr caps, out IntPtr _ret);
static int UpdateSrcCaps_cb (IntPtr inst, IntPtr caps, IntPtr _ret)
static int UpdateSrcCaps_cb (IntPtr inst, IntPtr caps, out IntPtr _ret)
{
try {
Aggregator __obj = GLib.Object.GetObject (inst, false) as Aggregator;
Gst.FlowReturn __result;
__result = __obj.OnUpdateSrcCaps (caps == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (caps, typeof (Gst.Caps), false), _ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (_ret, typeof (Gst.Caps), false));
Gst.Caps my_ret;
__result = __obj.OnUpdateSrcCaps (caps == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (caps, typeof (Gst.Caps), false), out my_ret);
_ret = my_ret == null ? IntPtr.Zero : my_ret.Handle;
return (int) __result;
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, true);
@ -796,21 +813,23 @@ namespace Gst.Base {
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Base.Aggregator), ConnectionMethod="OverrideUpdateSrcCaps")]
protected virtual Gst.FlowReturn OnUpdateSrcCaps (Gst.Caps caps, Gst.Caps _ret)
protected virtual Gst.FlowReturn OnUpdateSrcCaps (Gst.Caps caps, out Gst.Caps _ret)
{
return InternalUpdateSrcCaps (caps, _ret);
return InternalUpdateSrcCaps (caps, out _ret);
}
private Gst.FlowReturn InternalUpdateSrcCaps (Gst.Caps caps, Gst.Caps _ret)
private Gst.FlowReturn InternalUpdateSrcCaps (Gst.Caps caps, out Gst.Caps _ret)
{
UpdateSrcCapsNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("update_src_caps"));
unmanaged = (UpdateSrcCapsNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(UpdateSrcCapsNativeDelegate));
}
if (unmanaged == null) return (Gst.FlowReturn) 0;
if (unmanaged == null) throw new InvalidOperationException ("No base method to invoke");
int __result = unmanaged (this.Handle, caps == null ? IntPtr.Zero : caps.Handle, _ret == null ? IntPtr.Zero : _ret.Handle);
IntPtr native__ret;
int __result = unmanaged (this.Handle, caps == null ? IntPtr.Zero : caps.Handle, out native__ret);
_ret = native__ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (native__ret, typeof (Gst.Caps), true);
return (Gst.FlowReturn) __result;
}
@ -1274,6 +1293,15 @@ namespace Gst.Base {
}
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern ulong gst_aggregator_simple_get_next_time(IntPtr raw);
public ulong SimpleGetNextTime() {
ulong raw_ret = gst_aggregator_simple_get_next_time(Handle);
ulong ret = raw_ret;
return ret;
}
static Aggregator ()
{

View file

@ -114,6 +114,24 @@ namespace Gst.Base {
}
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern ulong gst_base_sink_get_processing_deadline(IntPtr raw);
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_base_sink_set_processing_deadline(IntPtr raw, ulong processing_deadline);
[GLib.Property ("processing-deadline")]
public ulong ProcessingDeadline {
get {
ulong raw_ret = gst_base_sink_get_processing_deadline(Handle);
ulong ret = raw_ret;
return ret;
}
set {
gst_base_sink_set_processing_deadline(Handle, value);
}
}
[GLib.Property ("qos")]
public bool Qos {
get {

View file

@ -0,0 +1,258 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Base {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct BitWriter : IEquatable<BitWriter> {
public byte Data;
public uint BitSize;
private uint bit_capacity;
private bool auto_grow;
private bool owned;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=4)]
private IntPtr[] _gstGstReserved;
public static Gst.Base.BitWriter Zero = new Gst.Base.BitWriter ();
public static Gst.Base.BitWriter New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Base.BitWriter.Zero;
return (Gst.Base.BitWriter) Marshal.PtrToStructure (raw, typeof (Gst.Base.BitWriter));
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_bit_writer_align_bytes(IntPtr raw, byte trailing_bit);
public bool AlignBytes(byte trailing_bit) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_bit_writer_align_bytes(this_as_native, trailing_bit);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_bit_writer_free(IntPtr raw);
public void Free() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_bit_writer_free(this_as_native);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_bit_writer_free_and_get_buffer(IntPtr raw);
public Gst.Buffer FreeAndGetBuffer() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
IntPtr raw_ret = gst_bit_writer_free_and_get_buffer(this_as_native);
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern uint gst_bit_writer_get_remaining(IntPtr raw);
public uint Remaining {
get {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
uint raw_ret = gst_bit_writer_get_remaining(this_as_native);
uint ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern uint gst_bit_writer_get_size(IntPtr raw);
public uint Size {
get {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
uint raw_ret = gst_bit_writer_get_size(this_as_native);
uint ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_bit_writer_init(IntPtr raw);
public void Init() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_bit_writer_init(this_as_native);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_bit_writer_init_with_data(IntPtr raw, byte[] data, uint size, bool initialized);
public void InitWithData(byte[] data, uint size, bool initialized) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_bit_writer_init_with_data(this_as_native, data, size, initialized);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_bit_writer_init_with_size(IntPtr raw, uint size, bool mfixed);
public void InitWithSize(uint size, bool mfixed) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_bit_writer_init_with_size(this_as_native, size, mfixed);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_bit_writer_put_bits_uint16(IntPtr raw, ushort value, uint nbits);
public bool PutBitsUint16(ushort value, uint nbits) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_bit_writer_put_bits_uint16(this_as_native, value, nbits);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_bit_writer_put_bits_uint32(IntPtr raw, uint value, uint nbits);
public bool PutBitsUint32(uint value, uint nbits) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_bit_writer_put_bits_uint32(this_as_native, value, nbits);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_bit_writer_put_bits_uint64(IntPtr raw, ulong value, uint nbits);
public bool PutBitsUint64(ulong value, uint nbits) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_bit_writer_put_bits_uint64(this_as_native, value, nbits);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_bit_writer_put_bits_uint8(IntPtr raw, byte value, uint nbits);
public bool PutBitsUint8(byte value, uint nbits) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_bit_writer_put_bits_uint8(this_as_native, value, nbits);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_bit_writer_put_bytes(IntPtr raw, byte data, uint nbytes);
public bool PutBytes(byte data, uint nbytes) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_bit_writer_put_bytes(this_as_native, data, nbytes);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_bit_writer_reset(IntPtr raw);
public void Reset() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_bit_writer_reset(this_as_native);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_bit_writer_reset_and_get_buffer(IntPtr raw);
public Gst.Buffer ResetAndGetBuffer() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
IntPtr raw_ret = gst_bit_writer_reset_and_get_buffer(this_as_native);
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_bit_writer_set_pos(IntPtr raw, uint pos);
public bool SetPos(uint pos) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_bit_writer_set_pos(this_as_native, pos);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
static void ReadNative (IntPtr native, ref Gst.Base.BitWriter target)
{
target = New (native);
}
public bool Equals (BitWriter other)
{
return true && Data.Equals (other.Data) && BitSize.Equals (other.BitSize) && bit_capacity.Equals (other.bit_capacity) && auto_grow.Equals (other.auto_grow) && owned.Equals (other.owned);
}
public override bool Equals (object other)
{
return other is BitWriter && Equals ((BitWriter) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ Data.GetHashCode () ^ BitSize.GetHashCode () ^ bit_capacity.GetHashCode () ^ auto_grow.GetHashCode () ^ owned.GetHashCode ();
}
private static GLib.GType GType {
get { return GLib.GType.Pointer; }
}
#endregion
}
}

View file

@ -35,6 +35,23 @@ namespace Gst.Base {
return TypeFindHelperForBuffer (null, buf, out prob);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_type_find_helper_for_buffer_with_extension(IntPtr obj, IntPtr buf, IntPtr extension, out int prob);
public static Gst.Caps TypeFindHelperForBufferWithExtension(Gst.Object obj, Gst.Buffer buf, string extension, out Gst.TypeFindProbability prob) {
IntPtr native_extension = GLib.Marshaller.StringToPtrGStrdup (extension);
int native_prob;
IntPtr raw_ret = gst_type_find_helper_for_buffer_with_extension(obj == null ? IntPtr.Zero : obj.Handle, buf == null ? IntPtr.Zero : buf.Handle, native_extension, out native_prob);
Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), true);
GLib.Marshaller.Free (native_extension);
prob = (Gst.TypeFindProbability) native_prob;
return ret;
}
public static Gst.Caps TypeFindHelperForBufferWithExtension(Gst.Buffer buf, out Gst.TypeFindProbability prob) {
return TypeFindHelperForBufferWithExtension (null, buf, null, out prob);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_type_find_helper_for_data(IntPtr obj, byte[] data, UIntPtr size, out int prob);
@ -50,6 +67,23 @@ namespace Gst.Base {
return TypeFindHelperForData (null, data, size, out prob);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_type_find_helper_for_data_with_extension(IntPtr obj, byte[] data, UIntPtr size, IntPtr extension, out int prob);
public static Gst.Caps TypeFindHelperForDataWithExtension(Gst.Object obj, byte[] data, ulong size, string extension, out Gst.TypeFindProbability prob) {
IntPtr native_extension = GLib.Marshaller.StringToPtrGStrdup (extension);
int native_prob;
IntPtr raw_ret = gst_type_find_helper_for_data_with_extension(obj == null ? IntPtr.Zero : obj.Handle, data, new UIntPtr (size), native_extension, out native_prob);
Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), true);
GLib.Marshaller.Free (native_extension);
prob = (Gst.TypeFindProbability) native_prob;
return ret;
}
public static Gst.Caps TypeFindHelperForDataWithExtension(byte[] data, ulong size, out Gst.TypeFindProbability prob) {
return TypeFindHelperForDataWithExtension (null, data, size, null, out prob);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_type_find_helper_for_extension(IntPtr obj, IntPtr extension);
@ -79,8 +113,28 @@ namespace Gst.Base {
return ret;
}
public static Gst.Caps TypeFindHelperGetRange(Gst.Object obj, Gst.Base.TypeFindHelperGetRangeFunction func, ulong size, string extension, out Gst.TypeFindProbability prob) {
return TypeFindHelperGetRange (obj, null, func, size, extension, out prob);
public static Gst.Caps TypeFindHelperGetRange(Gst.Object obj, Gst.Base.TypeFindHelperGetRangeFunction func, ulong size, out Gst.TypeFindProbability prob) {
return TypeFindHelperGetRange (obj, null, func, size, null, out prob);
}
[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_type_find_helper_get_range_full(IntPtr obj, IntPtr parent, Gst.BaseSharp.TypeFindHelperGetRangeFunctionNative func, ulong size, IntPtr extension, out IntPtr caps, out int prob);
public static Gst.FlowReturn TypeFindHelperGetRangeFull(Gst.Object obj, Gst.Object parent, Gst.Base.TypeFindHelperGetRangeFunction func, ulong size, string extension, out Gst.Caps caps, out Gst.TypeFindProbability prob) {
Gst.BaseSharp.TypeFindHelperGetRangeFunctionWrapper func_wrapper = new Gst.BaseSharp.TypeFindHelperGetRangeFunctionWrapper (func);
IntPtr native_extension = GLib.Marshaller.StringToPtrGStrdup (extension);
IntPtr native_caps;
int native_prob;
int raw_ret = gst_type_find_helper_get_range_full(obj == null ? IntPtr.Zero : obj.Handle, parent == null ? IntPtr.Zero : parent.Handle, func_wrapper.NativeDelegate, size, native_extension, out native_caps, out native_prob);
Gst.FlowReturn ret = (Gst.FlowReturn) raw_ret;
GLib.Marshaller.Free (native_extension);
caps = native_caps == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (native_caps, typeof (Gst.Caps), true);
prob = (Gst.TypeFindProbability) native_prob;
return ret;
}
public static Gst.FlowReturn TypeFindHelperGetRangeFull(Gst.Object obj, Gst.Base.TypeFindHelperGetRangeFunction func, ulong size, out Gst.Caps caps, out Gst.TypeFindProbability prob) {
return TypeFindHelperGetRangeFull (obj, null, func, size, null, out caps, out prob);
}
#endregion

View file

@ -55,16 +55,6 @@ namespace Gst.Controller {
}
}
[GLib.Signal("value-changed")]
public event Gst.Controller.ValueChangedHandler ValueChanged {
add {
this.AddSignalHandler ("value-changed", value, typeof (Gst.Controller.ValueChangedArgs));
}
remove {
this.RemoveSignalHandler ("value-changed", value);
}
}
[GLib.Signal("value-added")]
public event Gst.Controller.ValueAddedHandler ValueAdded {
add {
@ -75,6 +65,16 @@ namespace Gst.Controller {
}
}
[GLib.Signal("value-changed")]
public event Gst.Controller.ValueChangedHandler ValueChanged {
add {
this.AddSignalHandler ("value-changed", value, typeof (Gst.Controller.ValueChangedArgs));
}
remove {
this.RemoveSignalHandler ("value-changed", value);
}
}
static ValueAddedNativeDelegate ValueAdded_cb_delegate;
static ValueAddedNativeDelegate ValueAddedVMCallback {
get {

View file

@ -17,9 +17,9 @@ namespace Gst.PbUtils {
public const string ENCODING_CATEGORY_ONLINE_SERVICE = @"online-service";
public const string ENCODING_CATEGORY_STORAGE_EDITING = @"storage-editing";
public const int PLUGINS_BASE_VERSION_MAJOR = 1;
public const int PLUGINS_BASE_VERSION_MICRO = 0;
public const int PLUGINS_BASE_VERSION_MICRO = 1;
public const int PLUGINS_BASE_VERSION_MINOR = 15;
public const int PLUGINS_BASE_VERSION_NANO = 1;
public const int PLUGINS_BASE_VERSION_NANO = 0;
#endregion
}
}

View file

@ -44,6 +44,31 @@ namespace Gst.PbUtils {
}
}
[GLib.Property ("use-cache")]
public bool UseCache {
get {
GLib.Value val = GetProperty ("use-cache");
bool ret = (bool) val;
val.Dispose ();
return ret;
}
set {
GLib.Value val = new GLib.Value(value);
SetProperty("use-cache", val);
val.Dispose ();
}
}
[GLib.Signal("discovered")]
public event Gst.PbUtils.DiscoveredHandler Discovered {
add {
this.AddSignalHandler ("discovered", value, typeof (Gst.PbUtils.DiscoveredArgs));
}
remove {
this.RemoveSignalHandler ("discovered", value);
}
}
[GLib.Signal("starting")]
public event System.EventHandler Starting {
add {
@ -64,16 +89,6 @@ namespace Gst.PbUtils {
}
}
[GLib.Signal("discovered")]
public event Gst.PbUtils.DiscoveredHandler Discovered {
add {
this.AddSignalHandler ("discovered", value, typeof (Gst.PbUtils.DiscoveredArgs));
}
remove {
this.RemoveSignalHandler ("discovered", value);
}
}
[GLib.Signal("source-setup")]
public event Gst.PbUtils.SourceSetupHandler SourceSetup {
add {

View file

@ -74,8 +74,8 @@ namespace Gst.PbUtils {
return ret;
}
public static Gst.PbUtils.EncodingProfile Find(string targetname, string profilename) {
return Find (targetname, profilename, null);
public static Gst.PbUtils.EncodingProfile Find(string targetname) {
return Find (targetname, null, null);
}
[DllImport("libgstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]

View file

@ -59,6 +59,7 @@ namespace Gst.Rtp {
public const string RTP_PAYLOAD_TS41_STRING = @"19";
public const int RTP_PAYLOAD_TS48 = 18;
public const string RTP_PAYLOAD_TS48_STRING = @"18";
public const int RTP_SOURCE_META_MAX_CSRC_COUNT = 15;
public const int RTP_VERSION = 2;
#endregion
}

View file

@ -11,6 +11,28 @@ namespace Gst.Rtp {
#region Autogenerated code
public partial class Global {
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_add_rtp_source_meta(IntPtr buffer, uint ssrc, uint csrc, uint csrc_count);
public static Gst.Rtp.RTPSourceMeta BufferAddRtpSourceMeta(Gst.Buffer buffer, uint ssrc, uint csrc, uint csrc_count) {
IntPtr raw_ret = gst_buffer_add_rtp_source_meta(buffer == null ? IntPtr.Zero : buffer.Handle, ssrc, csrc, csrc_count);
Gst.Rtp.RTPSourceMeta ret = Gst.Rtp.RTPSourceMeta.New (raw_ret);
return ret;
}
public static Gst.Rtp.RTPSourceMeta BufferAddRtpSourceMeta(Gst.Buffer buffer, uint csrc_count) {
return BufferAddRtpSourceMeta (buffer, 0, 0, csrc_count);
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_get_rtp_source_meta(IntPtr buffer);
public static Gst.Rtp.RTPSourceMeta BufferGetRtpSourceMeta(Gst.Buffer buffer) {
IntPtr raw_ret = gst_buffer_get_rtp_source_meta(buffer == null ? IntPtr.Zero : buffer.Handle);
Gst.Rtp.RTPSourceMeta ret = Gst.Rtp.RTPSourceMeta.New (raw_ret);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_buffer_map(IntPtr buffer, int flags, IntPtr rtcp);
@ -290,6 +312,24 @@ namespace Gst.Rtp {
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_rtp_source_meta_api_get_type();
public static GLib.GType RtpSourceMetaApiGetType() {
IntPtr raw_ret = gst_rtp_source_meta_api_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_rtp_source_meta_get_info();
public static Gst.MetaInfo RtpSourceMetaGetInfo() {
IntPtr raw_ret = gst_rtp_source_meta_get_info();
Gst.MetaInfo ret = Gst.MetaInfo.New (raw_ret);
return ret;
}
#endregion
}
}

View file

@ -646,6 +646,305 @@ namespace Gst.Rtp {
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_first_rb(IntPtr raw);
public bool XrFirstRb() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_first_rb(this_as_native);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern ushort gst_rtcp_packet_xr_get_block_length(IntPtr raw);
public ushort XrGetBlockLength() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
ushort raw_ret = gst_rtcp_packet_xr_get_block_length(this_as_native);
ushort ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtcp_packet_xr_get_block_type(IntPtr raw);
public Gst.Rtp.RTCPXRType XrGetBlockType() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
int raw_ret = gst_rtcp_packet_xr_get_block_type(this_as_native);
Gst.Rtp.RTCPXRType ret = (Gst.Rtp.RTCPXRType) raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_dlrr_block(IntPtr raw, uint nth, uint ssrc, uint last_rr, uint delay);
public bool XrGetDlrrBlock(uint nth, uint ssrc, uint last_rr, uint delay) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_dlrr_block(this_as_native, nth, ssrc, last_rr, delay);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_prt_by_seq(IntPtr raw, ushort seq, uint receipt_time);
public bool XrGetPrtBySeq(ushort seq, uint receipt_time) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_prt_by_seq(this_as_native, seq, receipt_time);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_prt_info(IntPtr raw, uint ssrc, byte thinning, ushort begin_seq, ushort end_seq);
public bool XrGetPrtInfo(uint ssrc, byte thinning, ushort begin_seq, ushort end_seq) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_prt_info(this_as_native, ssrc, thinning, begin_seq, end_seq);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_rle_info(IntPtr raw, uint ssrc, byte thinning, ushort begin_seq, ushort end_seq, uint chunk_count);
public bool XrGetRleInfo(uint ssrc, byte thinning, ushort begin_seq, ushort end_seq, uint chunk_count) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_rle_info(this_as_native, ssrc, thinning, begin_seq, end_seq, chunk_count);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_rle_nth_chunk(IntPtr raw, uint nth, ushort chunk);
public bool XrGetRleNthChunk(uint nth, ushort chunk) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_rle_nth_chunk(this_as_native, nth, chunk);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_rrt(IntPtr raw, ulong timestamp);
public bool XrGetRrt(ulong timestamp) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_rrt(this_as_native, timestamp);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern uint gst_rtcp_packet_xr_get_ssrc(IntPtr raw);
public uint XrGetSsrc() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
uint raw_ret = gst_rtcp_packet_xr_get_ssrc(this_as_native);
uint ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_summary_info(IntPtr raw, uint ssrc, ushort begin_seq, ushort end_seq);
public bool XrGetSummaryInfo(uint ssrc, ushort begin_seq, ushort end_seq) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_summary_info(this_as_native, ssrc, begin_seq, end_seq);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_summary_jitter(IntPtr raw, uint min_jitter, uint max_jitter, uint mean_jitter, uint dev_jitter);
public bool XrGetSummaryJitter(uint min_jitter, uint max_jitter, uint mean_jitter, uint dev_jitter) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_summary_jitter(this_as_native, min_jitter, max_jitter, mean_jitter, dev_jitter);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_summary_pkt(IntPtr raw, uint lost_packets, uint dup_packets);
public bool XrGetSummaryPkt(uint lost_packets, uint dup_packets) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_summary_pkt(this_as_native, lost_packets, dup_packets);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_summary_ttl(IntPtr raw, bool is_ipv4, byte min_ttl, byte max_ttl, byte mean_ttl, byte dev_ttl);
public bool XrGetSummaryTtl(bool is_ipv4, byte min_ttl, byte max_ttl, byte mean_ttl, byte dev_ttl) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_summary_ttl(this_as_native, is_ipv4, min_ttl, max_ttl, mean_ttl, dev_ttl);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_burst_metrics(IntPtr raw, byte burst_density, byte gap_density, ushort burst_duration, ushort gap_duration);
public bool XrGetVoipBurstMetrics(byte burst_density, byte gap_density, ushort burst_duration, ushort gap_duration) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_burst_metrics(this_as_native, burst_density, gap_density, burst_duration, gap_duration);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_configuration_params(IntPtr raw, byte gmin, byte rx_config);
public bool XrGetVoipConfigurationParams(byte gmin, byte rx_config) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_configuration_params(this_as_native, gmin, rx_config);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_delay_metrics(IntPtr raw, ushort roundtrip_delay, ushort end_system_delay);
public bool XrGetVoipDelayMetrics(ushort roundtrip_delay, ushort end_system_delay) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_delay_metrics(this_as_native, roundtrip_delay, end_system_delay);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_jitter_buffer_params(IntPtr raw, ushort jb_nominal, ushort jb_maximum, ushort jb_abs_max);
public bool XrGetVoipJitterBufferParams(ushort jb_nominal, ushort jb_maximum, ushort jb_abs_max) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_jitter_buffer_params(this_as_native, jb_nominal, jb_maximum, jb_abs_max);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_metrics_ssrc(IntPtr raw, uint ssrc);
public bool XrGetVoipMetricsSsrc(uint ssrc) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_metrics_ssrc(this_as_native, ssrc);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_packet_metrics(IntPtr raw, byte loss_rate, byte discard_rate);
public bool XrGetVoipPacketMetrics(byte loss_rate, byte discard_rate) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_packet_metrics(this_as_native, loss_rate, discard_rate);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_quality_metrics(IntPtr raw, byte r_factor, byte ext_r_factor, byte mos_lq, byte mos_cq);
public bool XrGetVoipQualityMetrics(byte r_factor, byte ext_r_factor, byte mos_lq, byte mos_cq) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_quality_metrics(this_as_native, r_factor, ext_r_factor, mos_lq, mos_cq);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_get_voip_signal_metrics(IntPtr raw, byte signal_level, byte noise_level, byte rerl, byte gmin);
public bool XrGetVoipSignalMetrics(byte signal_level, byte noise_level, byte rerl, byte gmin) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_get_voip_signal_metrics(this_as_native, signal_level, noise_level, rerl, gmin);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtcp_packet_xr_next_rb(IntPtr raw);
public bool XrNextRb() {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtcp_packet_xr_next_rb(this_as_native);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
static void ReadNative (IntPtr native, ref Gst.Rtp.RTCPPacket target)
{
target = New (native);

View file

@ -0,0 +1,34 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Rtp {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.Rtp.RTCPXRTypeGType))]
public enum RTCPXRType {
Invalid = -1,
Lrle = 1,
Drle = 2,
Prt = 3,
Rrt = 4,
Dlrr = 5,
Ssumm = 6,
VoipMetrics = 7,
}
internal class RTCPXRTypeGType {
[DllImport ("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_rtcpxr_type_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_rtcpxr_type_get_type ());
}
}
}
#endregion
}

View file

@ -18,6 +18,21 @@ namespace Gst.Rtp {
CreateNativeObject (new string [0], new GLib.Value [0]);
}
[GLib.Property ("source-info")]
public bool SourceInfo {
get {
GLib.Value val = GetProperty ("source-info");
bool ret = (bool) val;
val.Dispose ();
return ret;
}
set {
GLib.Value val = new GLib.Value(value);
SetProperty("source-info", val);
val.Dispose ();
}
}
[GLib.Property ("stats")]
public Gst.Structure Stats {
get {
@ -440,6 +455,17 @@ namespace Gst.Rtp {
}
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtp_base_depayload_is_source_info_enabled(IntPtr raw);
public bool IsSourceInfoEnabled {
get {
bool raw_ret = gst_rtp_base_depayload_is_source_info_enabled(Handle);
bool ret = raw_ret;
return ret;
}
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtp_base_depayload_push(IntPtr raw, IntPtr out_buf);
@ -458,6 +484,15 @@ namespace Gst.Rtp {
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_rtp_base_depayload_set_source_info_enabled(IntPtr raw, bool enable);
public bool SourceInfoEnabled {
set {
gst_rtp_base_depayload_set_source_info_enabled(Handle, value);
}
}
static RTPBaseDepayload ()
{

View file

@ -133,6 +133,21 @@ namespace Gst.Rtp {
}
}
[GLib.Property ("source-info")]
public bool SourceInfo {
get {
GLib.Value val = GetProperty ("source-info");
bool ret = (bool) val;
val.Dispose ();
return ret;
}
set {
GLib.Value val = new GLib.Value(value);
SetProperty("source-info", val);
val.Dispose ();
}
}
[GLib.Property ("ssrc")]
public uint Ssrc {
get {
@ -614,6 +629,24 @@ namespace Gst.Rtp {
}
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_rtp_base_payload_allocate_output_buffer(IntPtr raw, uint payload_len, byte pad_len, byte csrc_count);
public Gst.Buffer AllocateOutputBuffer(uint payload_len, byte pad_len, byte csrc_count) {
IntPtr raw_ret = gst_rtp_base_payload_allocate_output_buffer(Handle, payload_len, pad_len, csrc_count);
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern uint gst_rtp_base_payload_get_source_count(IntPtr raw, IntPtr buffer);
public uint GetSourceCount(Gst.Buffer buffer) {
uint raw_ret = gst_rtp_base_payload_get_source_count(Handle, buffer == null ? IntPtr.Zero : buffer.Handle);
uint ret = raw_ret;
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtp_base_payload_is_filled(IntPtr raw, uint size, ulong duration);
@ -623,6 +656,17 @@ namespace Gst.Rtp {
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtp_base_payload_is_source_info_enabled(IntPtr raw);
public bool IsSourceInfoEnabled {
get {
bool raw_ret = gst_rtp_base_payload_is_source_info_enabled(Handle);
bool ret = raw_ret;
return ret;
}
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtp_base_payload_push(IntPtr raw, IntPtr buffer);
@ -652,6 +696,15 @@ namespace Gst.Rtp {
GLib.Marshaller.Free (native_encoding_name);
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_rtp_base_payload_set_source_info_enabled(IntPtr raw, bool enable);
public bool SourceInfoEnabled {
set {
gst_rtp_base_payload_set_source_info_enabled(Handle, value);
}
}
static RTPBasePayload ()
{

View file

@ -0,0 +1,111 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Rtp {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct RTPSourceMeta : IEquatable<RTPSourceMeta> {
public Gst.Meta Meta;
public uint Ssrc;
public bool SsrcValid;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=15)]
public uint[] Csrc;
public uint CsrcCount;
public static Gst.Rtp.RTPSourceMeta Zero = new Gst.Rtp.RTPSourceMeta ();
public static Gst.Rtp.RTPSourceMeta New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Rtp.RTPSourceMeta.Zero;
return (Gst.Rtp.RTPSourceMeta) Marshal.PtrToStructure (raw, typeof (Gst.Rtp.RTPSourceMeta));
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtp_source_meta_append_csrc(IntPtr raw, uint csrc, uint csrc_count);
public bool AppendCsrc(uint csrc, uint csrc_count) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtp_source_meta_append_csrc(this_as_native, csrc, csrc_count);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern uint gst_rtp_source_meta_get_source_count(IntPtr raw);
public uint SourceCount {
get {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
uint raw_ret = gst_rtp_source_meta_get_source_count(this_as_native);
uint ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtp_source_meta_set_ssrc(IntPtr raw, uint ssrc);
public bool SetSsrc(uint ssrc) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtp_source_meta_set_ssrc(this_as_native, ssrc);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
public bool SetSsrc() {
return SetSsrc (0);
}
[DllImport("libgstrtp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_rtp_source_meta_get_info();
public static Gst.MetaInfo Info {
get {
IntPtr raw_ret = gst_rtp_source_meta_get_info();
Gst.MetaInfo ret = Gst.MetaInfo.New (raw_ret);
return ret;
}
}
static void ReadNative (IntPtr native, ref Gst.Rtp.RTPSourceMeta target)
{
target = New (native);
}
public bool Equals (RTPSourceMeta other)
{
return true && Meta.Equals (other.Meta) && Ssrc.Equals (other.Ssrc) && SsrcValid.Equals (other.SsrcValid) && Csrc.Equals (other.Csrc) && CsrcCount.Equals (other.CsrcCount);
}
public override bool Equals (object other)
{
return other is RTPSourceMeta && Equals ((RTPSourceMeta) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ Meta.GetHashCode () ^ Ssrc.GetHashCode () ^ SsrcValid.GetHashCode () ^ Csrc.GetHashCode () ^ CsrcCount.GetHashCode ();
}
private static GLib.GType GType {
get { return GLib.GType.Pointer; }
}
#endregion
}
}

View file

@ -112,6 +112,29 @@ namespace Gst.Rtsp {
return RtspGenerateDigestAuthResponse (null, method, realm, username, password, uri, nonce);
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_rtsp_generate_digest_auth_response_from_md5(IntPtr algorithm, IntPtr method, IntPtr md5, IntPtr uri, IntPtr nonce);
public static string RtspGenerateDigestAuthResponseFromMd5(string algorithm, string method, string md5, string uri, string nonce) {
IntPtr native_algorithm = GLib.Marshaller.StringToPtrGStrdup (algorithm);
IntPtr native_method = GLib.Marshaller.StringToPtrGStrdup (method);
IntPtr native_md5 = GLib.Marshaller.StringToPtrGStrdup (md5);
IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri);
IntPtr native_nonce = GLib.Marshaller.StringToPtrGStrdup (nonce);
IntPtr raw_ret = gst_rtsp_generate_digest_auth_response_from_md5(native_algorithm, native_method, native_md5, native_uri, native_nonce);
string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
GLib.Marshaller.Free (native_algorithm);
GLib.Marshaller.Free (native_method);
GLib.Marshaller.Free (native_md5);
GLib.Marshaller.Free (native_uri);
GLib.Marshaller.Free (native_nonce);
return ret;
}
public static string RtspGenerateDigestAuthResponseFromMd5(string method, string md5, string uri, string nonce) {
return RtspGenerateDigestAuthResponseFromMd5 (null, method, md5, uri, nonce);
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtsp_header_allow_multiple(int field);

View file

@ -279,6 +279,15 @@ namespace Gst.Rtsp {
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_connection_send_messages(IntPtr raw, Gst.Rtsp.RTSPMessage[] messages, uint n_messages, IntPtr timeout);
public Gst.Rtsp.RTSPResult SendMessages(Gst.Rtsp.RTSPMessage[] messages, IntPtr timeout) {
int raw_ret = gst_rtsp_connection_send_messages(Handle, messages, (uint) (messages == null ? 0 : messages.Length), timeout);
Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_rtsp_connection_set_accept_certificate_func(IntPtr raw, Gst.RtspSharp.RTSPConnectionAcceptCertificateFuncNative func, IntPtr user_data, GLib.DestroyNotify destroy_notify);

View file

@ -16,7 +16,8 @@ namespace Gst.Rtsp {
private IntPtr HdrFieldsPtr;
private IntPtr _body;
private uint body_size;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=4)]
private IntPtr _body_buffer;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=3)]
private IntPtr[] _gstGstReserved;
public static Gst.Rtsp.RTSPMessage Zero = new Gst.Rtsp.RTSPMessage ();
@ -96,6 +97,21 @@ namespace Gst.Rtsp {
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_get_body_buffer(IntPtr raw, out IntPtr buffer);
public Gst.Rtsp.RTSPResult GetBodyBuffer(out Gst.Buffer buffer) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
IntPtr native_buffer;
int raw_ret = gst_rtsp_message_get_body_buffer(this_as_native, out native_buffer);
Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
buffer = native_buffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (native_buffer, typeof (Gst.Buffer), false);
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_get_header(IntPtr raw, int field, out IntPtr value, int indx);
@ -143,6 +159,21 @@ namespace Gst.Rtsp {
}
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_rtsp_message_has_body_buffer(IntPtr raw);
public bool HasBodyBuffer {
get {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_rtsp_message_has_body_buffer(this_as_native);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_init(IntPtr raw);
@ -297,6 +328,34 @@ namespace Gst.Rtsp {
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_set_body_buffer(IntPtr raw, IntPtr buffer);
public Gst.Rtsp.RTSPResult SetBodyBuffer(Gst.Buffer buffer) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
int raw_ret = gst_rtsp_message_set_body_buffer(this_as_native, buffer == null ? IntPtr.Zero : buffer.Handle);
Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_steal_body_buffer(IntPtr raw, out IntPtr buffer);
public Gst.Rtsp.RTSPResult StealBodyBuffer(out Gst.Buffer buffer) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
IntPtr native_buffer;
int raw_ret = gst_rtsp_message_steal_body_buffer(this_as_native, out native_buffer);
Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
buffer = native_buffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (native_buffer, typeof (Gst.Buffer), true);
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_take_body(IntPtr raw, byte[] data, uint size);
@ -310,6 +369,20 @@ namespace Gst.Rtsp {
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_take_body_buffer(IntPtr raw, IntPtr buffer);
public Gst.Rtsp.RTSPResult TakeBodyBuffer(Gst.Buffer buffer) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
buffer.Owned = false;
int raw_ret = gst_rtsp_message_take_body_buffer(this_as_native, buffer == null ? IntPtr.Zero : buffer.Handle);
Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_message_take_header(IntPtr raw, int field, IntPtr value);
@ -358,7 +431,7 @@ namespace Gst.Rtsp {
public bool Equals (RTSPMessage other)
{
return true && Type.Equals (other.Type) && HdrFieldsPtr.Equals (other.HdrFieldsPtr) && _body.Equals (other._body) && body_size.Equals (other.body_size);
return true && Type.Equals (other.Type) && HdrFieldsPtr.Equals (other.HdrFieldsPtr) && _body.Equals (other._body) && body_size.Equals (other.body_size) && _body_buffer.Equals (other._body_buffer);
}
public override bool Equals (object other)
@ -368,7 +441,7 @@ namespace Gst.Rtsp {
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ Type.GetHashCode () ^ HdrFieldsPtr.GetHashCode () ^ _body.GetHashCode () ^ body_size.GetHashCode ();
return this.GetType ().FullName.GetHashCode () ^ Type.GetHashCode () ^ HdrFieldsPtr.GetHashCode () ^ _body.GetHashCode () ^ body_size.GetHashCode () ^ _body_buffer.GetHashCode ();
}
public static explicit operator GLib.Value (Gst.Rtsp.RTSPMessage boxed)

View file

@ -47,6 +47,15 @@ namespace Gst.Rtsp {
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_rtsp_watch_send_messages(IntPtr raw, Gst.Rtsp.RTSPMessage[] messages, uint n_messages, out uint id);
public Gst.Rtsp.RTSPResult SendMessages(Gst.Rtsp.RTSPMessage[] messages, out uint id) {
int raw_ret = gst_rtsp_watch_send_messages(Handle, messages, (uint) (messages == null ? 0 : messages.Length), out id);
Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
return ret;
}
[DllImport("libgstrtsp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_rtsp_watch_set_flushing(IntPtr raw, bool flushing);

View file

@ -84,6 +84,19 @@ namespace Gst.Sdp {
return ret;
}
[DllImport("libgstsdp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_sdp_message_new_from_text(IntPtr text, out IntPtr msg);
public static Gst.Sdp.SDPResult SdpMessageNewFromText(string text, out Gst.Sdp.SDPMessage msg) {
IntPtr native_text = GLib.Marshaller.StringToPtrGStrdup (text);
IntPtr native_msg;
int raw_ret = gst_sdp_message_new_from_text(native_text, out native_msg);
Gst.Sdp.SDPResult ret = (Gst.Sdp.SDPResult) raw_ret;
GLib.Marshaller.Free (native_text);
msg = native_msg == IntPtr.Zero ? null : (Gst.Sdp.SDPMessage) GLib.Opaque.GetOpaque (native_msg, typeof (Gst.Sdp.SDPMessage), true);
return ret;
}
[DllImport("libgstsdp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_sdp_message_parse_buffer(byte[] data, uint size, IntPtr msg);

View file

@ -762,6 +762,19 @@ namespace Gst.Sdp {
return ret;
}
[DllImport("libgstsdp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_sdp_message_new_from_text(IntPtr text, out IntPtr msg);
public static Gst.Sdp.SDPResult NewFromText(string text, out Gst.Sdp.SDPMessage msg) {
IntPtr native_text = GLib.Marshaller.StringToPtrGStrdup (text);
IntPtr native_msg;
int raw_ret = gst_sdp_message_new_from_text(native_text, out native_msg);
Gst.Sdp.SDPResult ret = (Gst.Sdp.SDPResult) raw_ret;
GLib.Marshaller.Free (native_text);
msg = native_msg == IntPtr.Zero ? null : (Gst.Sdp.SDPMessage) GLib.Opaque.GetOpaque (native_msg, typeof (Gst.Sdp.SDPMessage), true);
return ret;
}
[DllImport("libgstsdp-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_sdp_message_parse_buffer(byte[] data, uint size, IntPtr msg);

View file

@ -15,6 +15,7 @@ namespace Gst.Video {
public const string BUFFER_POOL_OPTION_VIDEO_ALIGNMENT = @"GstBufferPoolOptionVideoAlignment";
public const string BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META = @"GstBufferPoolOptionVideoGLTextureUploadMeta";
public const string BUFFER_POOL_OPTION_VIDEO_META = @"GstBufferPoolOptionVideoMeta";
public const string CAPS_FEATURE_FORMAT_INTERLACED = @"format:Interlaced";
public const string CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META = @"meta:GstVideoAffineTransformation";
public const string CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META = @"meta:GstVideoGLTextureUploadMeta";
public const string CAPS_FEATURE_META_GST_VIDEO_META = @"meta:GstVideoMeta";
@ -64,7 +65,7 @@ namespace Gst.Video {
public const string VIDEO_DECODER_SRC_NAME = @"src";
public const string VIDEO_ENCODER_SINK_NAME = @"sink";
public const string VIDEO_ENCODER_SRC_NAME = @"src";
public const string VIDEO_FORMATS_ALL = @"{ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32 }";
public const string VIDEO_FORMATS_ALL = @"{ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40 }";
public const string VIDEO_FPS_RANGE = @"(fraction) [ 0, max ]";
public const int VIDEO_MAX_COMPONENTS = 4;
public const int VIDEO_MAX_PLANES = 4;

View file

@ -20,6 +20,15 @@ namespace Gst.Video {
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_add_video_caption_meta(IntPtr buffer, int caption_type, byte[] data, UIntPtr size);
public static Gst.Video.VideoCaptionMeta BufferAddVideoCaptionMeta(Gst.Buffer buffer, Gst.Video.VideoCaptionType caption_type, byte[] data, ulong size) {
IntPtr raw_ret = gst_buffer_add_video_caption_meta(buffer == null ? IntPtr.Zero : buffer.Handle, (int) caption_type, data, new UIntPtr (size));
Gst.Video.VideoCaptionMeta ret = Gst.Video.VideoCaptionMeta.New (raw_ret);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_add_video_gl_texture_upload_meta(IntPtr buffer, int texture_orientation, uint n_textures, int texture_type, Gst.VideoSharp.VideoGLTextureUploadNative upload, IntPtr user_data, IntPtr user_data_copy, IntPtr user_data_free);
@ -39,15 +48,6 @@ namespace Gst.Video {
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_add_video_meta_full(IntPtr buffer, int flags, int format, uint width, uint height, uint n_planes, UIntPtr offset, int stride);
public static Gst.Video.VideoMeta BufferAddVideoMetaFull(Gst.Buffer buffer, Gst.Video.VideoFrameFlags flags, Gst.Video.VideoFormat format, uint width, uint height, uint n_planes, ulong offset, int stride) {
IntPtr raw_ret = gst_buffer_add_video_meta_full(buffer == null ? IntPtr.Zero : buffer.Handle, (int) flags, (int) format, width, height, n_planes, new UIntPtr (offset), stride);
Gst.Video.VideoMeta ret = Gst.Video.VideoMeta.New (raw_ret);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_add_video_overlay_composition_meta(IntPtr buf, IntPtr comp);
@ -407,6 +407,42 @@ namespace Gst.Video {
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_caption_meta_api_get_type();
public static GLib.GType VideoCaptionMetaApiGetType() {
IntPtr raw_ret = gst_video_caption_meta_api_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_caption_meta_get_info();
public static Gst.MetaInfo VideoCaptionMetaGetInfo() {
IntPtr raw_ret = gst_video_caption_meta_get_info();
Gst.MetaInfo ret = Gst.MetaInfo.New (raw_ret);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_video_caption_type_from_caps(IntPtr caps);
public static Gst.Video.VideoCaptionType VideoCaptionTypeFromCaps(Gst.Caps caps) {
int raw_ret = gst_video_caption_type_from_caps(caps == null ? IntPtr.Zero : caps.Handle);
Gst.Video.VideoCaptionType ret = (Gst.Video.VideoCaptionType) raw_ret;
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_caption_type_to_caps(int type);
public static Gst.Caps VideoCaptionTypeToCaps(Gst.Video.VideoCaptionType type) {
IntPtr raw_ret = gst_video_caption_type_to_caps((int) type);
Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), true);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_video_chroma_from_string(IntPtr s);

View file

@ -0,0 +1,371 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
public partial class VideoAggregator : Gst.Base.Aggregator {
protected VideoAggregator (IntPtr raw) : base(raw) {}
protected VideoAggregator() : base(IntPtr.Zero)
{
CreateNativeObject (new string [0], new GLib.Value [0]);
}
public Gst.Video.VideoInfo Info {
get {
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((byte*)Handle) + abi_info.GetFieldOffset("info"));
return (*raw_ptr) == IntPtr.Zero ? null : (Gst.Video.VideoInfo) GLib.Opaque.GetOpaque ((*raw_ptr), typeof (Gst.Video.VideoInfo), false);
}
}
}
static UpdateCapsNativeDelegate UpdateCaps_cb_delegate;
static UpdateCapsNativeDelegate UpdateCapsVMCallback {
get {
if (UpdateCaps_cb_delegate == null)
UpdateCaps_cb_delegate = new UpdateCapsNativeDelegate (UpdateCaps_cb);
return UpdateCaps_cb_delegate;
}
}
static void OverrideUpdateCaps (GLib.GType gtype)
{
OverrideUpdateCaps (gtype, UpdateCapsVMCallback);
}
static void OverrideUpdateCaps (GLib.GType gtype, UpdateCapsNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("update_caps"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate IntPtr UpdateCapsNativeDelegate (IntPtr inst, IntPtr caps);
static IntPtr UpdateCaps_cb (IntPtr inst, IntPtr caps)
{
try {
VideoAggregator __obj = GLib.Object.GetObject (inst, false) as VideoAggregator;
Gst.Caps __result;
__result = __obj.OnUpdateCaps (caps == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (caps, typeof (Gst.Caps), false));
return __result == null ? IntPtr.Zero : __result.OwnedCopy;
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, true);
// NOTREACHED: above call does not return.
throw e;
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregator), ConnectionMethod="OverrideUpdateCaps")]
protected virtual Gst.Caps OnUpdateCaps (Gst.Caps caps)
{
return InternalUpdateCaps (caps);
}
private Gst.Caps InternalUpdateCaps (Gst.Caps caps)
{
UpdateCapsNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("update_caps"));
unmanaged = (UpdateCapsNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(UpdateCapsNativeDelegate));
}
if (unmanaged == null) return null;
IntPtr __result = unmanaged (this.Handle, caps == null ? IntPtr.Zero : caps.Handle);
return __result == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (__result, typeof (Gst.Caps), true);
}
static AggregateFramesNativeDelegate AggregateFrames_cb_delegate;
static AggregateFramesNativeDelegate AggregateFramesVMCallback {
get {
if (AggregateFrames_cb_delegate == null)
AggregateFrames_cb_delegate = new AggregateFramesNativeDelegate (AggregateFrames_cb);
return AggregateFrames_cb_delegate;
}
}
static void OverrideAggregateFrames (GLib.GType gtype)
{
OverrideAggregateFrames (gtype, AggregateFramesVMCallback);
}
static void OverrideAggregateFrames (GLib.GType gtype, AggregateFramesNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("aggregate_frames"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate int AggregateFramesNativeDelegate (IntPtr inst, IntPtr outbuffer);
static int AggregateFrames_cb (IntPtr inst, IntPtr outbuffer)
{
try {
VideoAggregator __obj = GLib.Object.GetObject (inst, false) as VideoAggregator;
Gst.FlowReturn __result;
__result = __obj.OnAggregateFrames (outbuffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (outbuffer, typeof (Gst.Buffer), false));
return (int) __result;
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, true);
// NOTREACHED: above call does not return.
throw e;
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregator), ConnectionMethod="OverrideAggregateFrames")]
protected virtual Gst.FlowReturn OnAggregateFrames (Gst.Buffer outbuffer)
{
return InternalAggregateFrames (outbuffer);
}
private Gst.FlowReturn InternalAggregateFrames (Gst.Buffer outbuffer)
{
AggregateFramesNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("aggregate_frames"));
unmanaged = (AggregateFramesNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(AggregateFramesNativeDelegate));
}
if (unmanaged == null) return (Gst.FlowReturn) 0;
int __result = unmanaged (this.Handle, outbuffer == null ? IntPtr.Zero : outbuffer.Handle);
return (Gst.FlowReturn) __result;
}
static CreateOutputBufferNativeDelegate CreateOutputBuffer_cb_delegate;
static CreateOutputBufferNativeDelegate CreateOutputBufferVMCallback {
get {
if (CreateOutputBuffer_cb_delegate == null)
CreateOutputBuffer_cb_delegate = new CreateOutputBufferNativeDelegate (CreateOutputBuffer_cb);
return CreateOutputBuffer_cb_delegate;
}
}
static void OverrideCreateOutputBuffer (GLib.GType gtype)
{
OverrideCreateOutputBuffer (gtype, CreateOutputBufferVMCallback);
}
static void OverrideCreateOutputBuffer (GLib.GType gtype, CreateOutputBufferNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("create_output_buffer"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate int CreateOutputBufferNativeDelegate (IntPtr inst, IntPtr outbuffer);
static int CreateOutputBuffer_cb (IntPtr inst, IntPtr outbuffer)
{
try {
VideoAggregator __obj = GLib.Object.GetObject (inst, false) as VideoAggregator;
Gst.FlowReturn __result;
__result = __obj.OnCreateOutputBuffer (outbuffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (outbuffer, typeof (Gst.Buffer), false));
return (int) __result;
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, true);
// NOTREACHED: above call does not return.
throw e;
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregator), ConnectionMethod="OverrideCreateOutputBuffer")]
protected virtual Gst.FlowReturn OnCreateOutputBuffer (Gst.Buffer outbuffer)
{
return InternalCreateOutputBuffer (outbuffer);
}
private Gst.FlowReturn InternalCreateOutputBuffer (Gst.Buffer outbuffer)
{
CreateOutputBufferNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("create_output_buffer"));
unmanaged = (CreateOutputBufferNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(CreateOutputBufferNativeDelegate));
}
if (unmanaged == null) return (Gst.FlowReturn) 0;
int __result = unmanaged (this.Handle, outbuffer == null ? IntPtr.Zero : outbuffer.Handle);
return (Gst.FlowReturn) __result;
}
static FindBestFormatNativeDelegate FindBestFormat_cb_delegate;
static FindBestFormatNativeDelegate FindBestFormatVMCallback {
get {
if (FindBestFormat_cb_delegate == null)
FindBestFormat_cb_delegate = new FindBestFormatNativeDelegate (FindBestFormat_cb);
return FindBestFormat_cb_delegate;
}
}
static void OverrideFindBestFormat (GLib.GType gtype)
{
OverrideFindBestFormat (gtype, FindBestFormatVMCallback);
}
static void OverrideFindBestFormat (GLib.GType gtype, FindBestFormatNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("find_best_format"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate void FindBestFormatNativeDelegate (IntPtr inst, IntPtr downstream_caps, IntPtr best_info, bool at_least_one_alpha);
static void FindBestFormat_cb (IntPtr inst, IntPtr downstream_caps, IntPtr best_info, bool at_least_one_alpha)
{
try {
VideoAggregator __obj = GLib.Object.GetObject (inst, false) as VideoAggregator;
__obj.OnFindBestFormat (downstream_caps == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (downstream_caps, typeof (Gst.Caps), false), best_info == IntPtr.Zero ? null : (Gst.Video.VideoInfo) GLib.Opaque.GetOpaque (best_info, typeof (Gst.Video.VideoInfo), false), at_least_one_alpha);
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregator), ConnectionMethod="OverrideFindBestFormat")]
protected virtual void OnFindBestFormat (Gst.Caps downstream_caps, Gst.Video.VideoInfo best_info, bool at_least_one_alpha)
{
InternalFindBestFormat (downstream_caps, best_info, at_least_one_alpha);
}
private void InternalFindBestFormat (Gst.Caps downstream_caps, Gst.Video.VideoInfo best_info, bool at_least_one_alpha)
{
FindBestFormatNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("find_best_format"));
unmanaged = (FindBestFormatNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(FindBestFormatNativeDelegate));
}
if (unmanaged == null) return;
unmanaged (this.Handle, downstream_caps == null ? IntPtr.Zero : downstream_caps.Handle, best_info == null ? IntPtr.Zero : best_info.Handle, at_least_one_alpha);
}
// Internal representation of the wrapped structure ABI.
static GLib.AbiStruct _class_abi = null;
static public new GLib.AbiStruct class_abi {
get {
if (_class_abi == null)
_class_abi = new GLib.AbiStruct (new List<GLib.AbiField>{
new GLib.AbiField("update_caps"
, Gst.Base.Aggregator.class_abi.Fields
, (uint) Marshal.SizeOf(typeof(IntPtr)) // update_caps
, null
, "aggregate_frames"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("aggregate_frames"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) // aggregate_frames
, "update_caps"
, "create_output_buffer"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("create_output_buffer"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) // create_output_buffer
, "aggregate_frames"
, "find_best_format"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("find_best_format"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) // find_best_format
, "create_output_buffer"
, "_gst_reserved"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("_gst_reserved"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) * 20 // _gst_reserved
, "find_best_format"
, null
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
});
return _class_abi;
}
}
// End of the ABI representation.
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_aggregator_get_type();
public static new GLib.GType GType {
get {
IntPtr raw_ret = gst_video_aggregator_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
}
static VideoAggregator ()
{
GtkSharp.GstreamerSharp.ObjectManager.Initialize ();
}
// Internal representation of the wrapped structure ABI.
static GLib.AbiStruct _abi_info = null;
static public new GLib.AbiStruct abi_info {
get {
if (_abi_info == null)
_abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{
new GLib.AbiField("info"
, Gst.Base.Aggregator.abi_info.Fields
, Gst.Video.VideoInfo.abi_info.Size // info
, null
, "priv"
, Gst.Video.VideoInfo.abi_info.Align
, 0
),
new GLib.AbiField("priv"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) // priv
, "info"
, "_gst_reserved"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("_gst_reserved"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) * 20 // _gst_reserved
, "priv"
, null
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
});
return _abi_info;
}
}
// End of the ABI representation.
#endregion
}
}

View file

@ -0,0 +1,178 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
public partial class VideoAggregatorConvertPad : Gst.Video.VideoAggregatorPad {
public VideoAggregatorConvertPad (IntPtr raw) : base(raw) {}
protected VideoAggregatorConvertPad() : base(IntPtr.Zero)
{
CreateNativeObject (new string [0], new GLib.Value [0]);
}
[GLib.Property ("converter-config")]
public Gst.Structure ConverterConfig {
get {
GLib.Value val = GetProperty ("converter-config");
Gst.Structure ret = (Gst.Structure) val;
val.Dispose ();
return ret;
}
set {
GLib.Value val = new GLib.Value(value, "GstStructure*");
SetProperty("converter-config", val);
val.Dispose ();
}
}
static CreateConversionInfoNativeDelegate CreateConversionInfo_cb_delegate;
static CreateConversionInfoNativeDelegate CreateConversionInfoVMCallback {
get {
if (CreateConversionInfo_cb_delegate == null)
CreateConversionInfo_cb_delegate = new CreateConversionInfoNativeDelegate (CreateConversionInfo_cb);
return CreateConversionInfo_cb_delegate;
}
}
static void OverrideCreateConversionInfo (GLib.GType gtype)
{
OverrideCreateConversionInfo (gtype, CreateConversionInfoVMCallback);
}
static void OverrideCreateConversionInfo (GLib.GType gtype, CreateConversionInfoNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("create_conversion_info"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate void CreateConversionInfoNativeDelegate (IntPtr inst, IntPtr agg, IntPtr conversion_info);
static void CreateConversionInfo_cb (IntPtr inst, IntPtr agg, IntPtr conversion_info)
{
try {
VideoAggregatorConvertPad __obj = GLib.Object.GetObject (inst, false) as VideoAggregatorConvertPad;
__obj.OnCreateConversionInfo (GLib.Object.GetObject(agg) as Gst.Video.VideoAggregator, conversion_info == IntPtr.Zero ? null : (Gst.Video.VideoInfo) GLib.Opaque.GetOpaque (conversion_info, typeof (Gst.Video.VideoInfo), false));
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregatorConvertPad), ConnectionMethod="OverrideCreateConversionInfo")]
protected virtual void OnCreateConversionInfo (Gst.Video.VideoAggregator agg, Gst.Video.VideoInfo conversion_info)
{
InternalCreateConversionInfo (agg, conversion_info);
}
private void InternalCreateConversionInfo (Gst.Video.VideoAggregator agg, Gst.Video.VideoInfo conversion_info)
{
CreateConversionInfoNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("create_conversion_info"));
unmanaged = (CreateConversionInfoNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(CreateConversionInfoNativeDelegate));
}
if (unmanaged == null) return;
unmanaged (this.Handle, agg == null ? IntPtr.Zero : agg.Handle, conversion_info == null ? IntPtr.Zero : conversion_info.Handle);
}
// Internal representation of the wrapped structure ABI.
static GLib.AbiStruct _class_abi = null;
static public new GLib.AbiStruct class_abi {
get {
if (_class_abi == null)
_class_abi = new GLib.AbiStruct (new List<GLib.AbiField>{
new GLib.AbiField("create_conversion_info"
, Gst.Video.VideoAggregatorPad.class_abi.Fields
, (uint) Marshal.SizeOf(typeof(IntPtr)) // create_conversion_info
, null
, "_gst_reserved"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("_gst_reserved"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) * 4 // _gst_reserved
, "create_conversion_info"
, null
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
});
return _class_abi;
}
}
// End of the ABI representation.
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_aggregator_convert_pad_get_type();
public static new GLib.GType GType {
get {
IntPtr raw_ret = gst_video_aggregator_convert_pad_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_video_aggregator_convert_pad_update_conversion_info(IntPtr raw);
public void UpdateConversionInfo() {
gst_video_aggregator_convert_pad_update_conversion_info(Handle);
}
static VideoAggregatorConvertPad ()
{
GtkSharp.GstreamerSharp.ObjectManager.Initialize ();
}
// Internal representation of the wrapped structure ABI.
static GLib.AbiStruct _abi_info = null;
static public new GLib.AbiStruct abi_info {
get {
if (_abi_info == null)
_abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{
new GLib.AbiField("priv"
, Gst.Video.VideoAggregatorPad.abi_info.Fields
, (uint) Marshal.SizeOf(typeof(IntPtr)) // priv
, null
, "_gst_reserved"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("_gst_reserved"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) * 4 // _gst_reserved
, "priv"
, null
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
});
return _abi_info;
}
}
// End of the ABI representation.
#endregion
}
}

View file

@ -0,0 +1,376 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
public partial class VideoAggregatorPad : Gst.Base.AggregatorPad {
public VideoAggregatorPad (IntPtr raw) : base(raw) {}
protected VideoAggregatorPad() : base(IntPtr.Zero)
{
CreateNativeObject (new string [0], new GLib.Value [0]);
}
[GLib.Property ("repeat-after-eos")]
public bool RepeatAfterEos {
get {
GLib.Value val = GetProperty ("repeat-after-eos");
bool ret = (bool) val;
val.Dispose ();
return ret;
}
set {
GLib.Value val = new GLib.Value(value);
SetProperty("repeat-after-eos", val);
val.Dispose ();
}
}
[GLib.Property ("zorder")]
public uint Zorder {
get {
GLib.Value val = GetProperty ("zorder");
uint ret = (uint) val;
val.Dispose ();
return ret;
}
set {
GLib.Value val = new GLib.Value(value);
SetProperty("zorder", val);
val.Dispose ();
}
}
public Gst.Video.VideoInfo Info {
get {
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((byte*)Handle) + abi_info.GetFieldOffset("info"));
return (*raw_ptr) == IntPtr.Zero ? null : (Gst.Video.VideoInfo) GLib.Opaque.GetOpaque ((*raw_ptr), typeof (Gst.Video.VideoInfo), false);
}
}
}
static UpdateConversionInfoNativeDelegate UpdateConversionInfo_cb_delegate;
static UpdateConversionInfoNativeDelegate UpdateConversionInfoVMCallback {
get {
if (UpdateConversionInfo_cb_delegate == null)
UpdateConversionInfo_cb_delegate = new UpdateConversionInfoNativeDelegate (UpdateConversionInfo_cb);
return UpdateConversionInfo_cb_delegate;
}
}
static void OverrideUpdateConversionInfo (GLib.GType gtype)
{
OverrideUpdateConversionInfo (gtype, UpdateConversionInfoVMCallback);
}
static void OverrideUpdateConversionInfo (GLib.GType gtype, UpdateConversionInfoNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("update_conversion_info"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate void UpdateConversionInfoNativeDelegate (IntPtr inst);
static void UpdateConversionInfo_cb (IntPtr inst)
{
try {
VideoAggregatorPad __obj = GLib.Object.GetObject (inst, false) as VideoAggregatorPad;
__obj.OnUpdateConversionInfo ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregatorPad), ConnectionMethod="OverrideUpdateConversionInfo")]
protected virtual void OnUpdateConversionInfo ()
{
InternalUpdateConversionInfo ();
}
private void InternalUpdateConversionInfo ()
{
UpdateConversionInfoNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("update_conversion_info"));
unmanaged = (UpdateConversionInfoNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(UpdateConversionInfoNativeDelegate));
}
if (unmanaged == null) return;
unmanaged (this.Handle);
}
static PrepareFrameNativeDelegate PrepareFrame_cb_delegate;
static PrepareFrameNativeDelegate PrepareFrameVMCallback {
get {
if (PrepareFrame_cb_delegate == null)
PrepareFrame_cb_delegate = new PrepareFrameNativeDelegate (PrepareFrame_cb);
return PrepareFrame_cb_delegate;
}
}
static void OverridePrepareFrame (GLib.GType gtype)
{
OverridePrepareFrame (gtype, PrepareFrameVMCallback);
}
static void OverridePrepareFrame (GLib.GType gtype, PrepareFrameNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("prepare_frame"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate bool PrepareFrameNativeDelegate (IntPtr inst, IntPtr videoaggregator, IntPtr buffer, IntPtr prepared_frame);
static bool PrepareFrame_cb (IntPtr inst, IntPtr videoaggregator, IntPtr buffer, IntPtr prepared_frame)
{
try {
VideoAggregatorPad __obj = GLib.Object.GetObject (inst, false) as VideoAggregatorPad;
bool __result;
__result = __obj.OnPrepareFrame (GLib.Object.GetObject(videoaggregator) as Gst.Video.VideoAggregator, buffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (buffer, typeof (Gst.Buffer), false), Gst.Video.VideoFrame.New (prepared_frame));
return __result;
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, true);
// NOTREACHED: above call does not return.
throw e;
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregatorPad), ConnectionMethod="OverridePrepareFrame")]
protected virtual bool OnPrepareFrame (Gst.Video.VideoAggregator videoaggregator, Gst.Buffer buffer, Gst.Video.VideoFrame prepared_frame)
{
return InternalPrepareFrame (videoaggregator, buffer, prepared_frame);
}
private bool InternalPrepareFrame (Gst.Video.VideoAggregator videoaggregator, Gst.Buffer buffer, Gst.Video.VideoFrame prepared_frame)
{
PrepareFrameNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("prepare_frame"));
unmanaged = (PrepareFrameNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(PrepareFrameNativeDelegate));
}
if (unmanaged == null) return false;
IntPtr native_prepared_frame = GLib.Marshaller.StructureToPtrAlloc (prepared_frame);
bool __result = unmanaged (this.Handle, videoaggregator == null ? IntPtr.Zero : videoaggregator.Handle, buffer == null ? IntPtr.Zero : buffer.Handle, native_prepared_frame);
Marshal.FreeHGlobal (native_prepared_frame);
return __result;
}
static CleanFrameNativeDelegate CleanFrame_cb_delegate;
static CleanFrameNativeDelegate CleanFrameVMCallback {
get {
if (CleanFrame_cb_delegate == null)
CleanFrame_cb_delegate = new CleanFrameNativeDelegate (CleanFrame_cb);
return CleanFrame_cb_delegate;
}
}
static void OverrideCleanFrame (GLib.GType gtype)
{
OverrideCleanFrame (gtype, CleanFrameVMCallback);
}
static void OverrideCleanFrame (GLib.GType gtype, CleanFrameNativeDelegate callback)
{
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) gtype.GetClassPtr()) + (long) class_abi.GetFieldOffset("clean_frame"));
*raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate) callback);
}
}
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
delegate void CleanFrameNativeDelegate (IntPtr inst, IntPtr videoaggregator, IntPtr prepared_frame);
static void CleanFrame_cb (IntPtr inst, IntPtr videoaggregator, IntPtr prepared_frame)
{
try {
VideoAggregatorPad __obj = GLib.Object.GetObject (inst, false) as VideoAggregatorPad;
__obj.OnCleanFrame (GLib.Object.GetObject(videoaggregator) as Gst.Video.VideoAggregator, Gst.Video.VideoFrame.New (prepared_frame));
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
[GLib.DefaultSignalHandler(Type=typeof(Gst.Video.VideoAggregatorPad), ConnectionMethod="OverrideCleanFrame")]
protected virtual void OnCleanFrame (Gst.Video.VideoAggregator videoaggregator, Gst.Video.VideoFrame prepared_frame)
{
InternalCleanFrame (videoaggregator, prepared_frame);
}
private void InternalCleanFrame (Gst.Video.VideoAggregator videoaggregator, Gst.Video.VideoFrame prepared_frame)
{
CleanFrameNativeDelegate unmanaged = null;
unsafe {
IntPtr* raw_ptr = (IntPtr*)(((long) this.LookupGType().GetThresholdType().GetClassPtr()) + (long) class_abi.GetFieldOffset("clean_frame"));
unmanaged = (CleanFrameNativeDelegate) Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(CleanFrameNativeDelegate));
}
if (unmanaged == null) return;
IntPtr native_prepared_frame = GLib.Marshaller.StructureToPtrAlloc (prepared_frame);
unmanaged (this.Handle, videoaggregator == null ? IntPtr.Zero : videoaggregator.Handle, native_prepared_frame);
Marshal.FreeHGlobal (native_prepared_frame);
}
// Internal representation of the wrapped structure ABI.
static GLib.AbiStruct _class_abi = null;
static public new GLib.AbiStruct class_abi {
get {
if (_class_abi == null)
_class_abi = new GLib.AbiStruct (new List<GLib.AbiField>{
new GLib.AbiField("update_conversion_info"
, Gst.Base.AggregatorPad.class_abi.Fields
, (uint) Marshal.SizeOf(typeof(IntPtr)) // update_conversion_info
, null
, "prepare_frame"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("prepare_frame"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) // prepare_frame
, "update_conversion_info"
, "clean_frame"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("clean_frame"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) // clean_frame
, "prepare_frame"
, "_gst_reserved"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("_gst_reserved"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) * 20 // _gst_reserved
, "clean_frame"
, null
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
});
return _class_abi;
}
}
// End of the ABI representation.
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_aggregator_pad_get_type();
public static new GLib.GType GType {
get {
IntPtr raw_ret = gst_video_aggregator_pad_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_aggregator_pad_get_current_buffer(IntPtr raw);
public Gst.Buffer CurrentBuffer {
get {
IntPtr raw_ret = gst_video_aggregator_pad_get_current_buffer(Handle);
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
return ret;
}
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_aggregator_pad_get_prepared_frame(IntPtr raw);
public Gst.Video.VideoFrame PreparedFrame {
get {
IntPtr raw_ret = gst_video_aggregator_pad_get_prepared_frame(Handle);
Gst.Video.VideoFrame ret = Gst.Video.VideoFrame.New (raw_ret);
return ret;
}
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_video_aggregator_pad_has_current_buffer(IntPtr raw);
public bool HasCurrentBuffer {
get {
bool raw_ret = gst_video_aggregator_pad_has_current_buffer(Handle);
bool ret = raw_ret;
return ret;
}
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_video_aggregator_pad_set_needs_alpha(IntPtr raw, bool needs_alpha);
public bool NeedsAlpha {
set {
gst_video_aggregator_pad_set_needs_alpha(Handle, value);
}
}
static VideoAggregatorPad ()
{
GtkSharp.GstreamerSharp.ObjectManager.Initialize ();
}
// Internal representation of the wrapped structure ABI.
static GLib.AbiStruct _abi_info = null;
static public new GLib.AbiStruct abi_info {
get {
if (_abi_info == null)
_abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{
new GLib.AbiField("info"
, Gst.Base.AggregatorPad.abi_info.Fields
, Gst.Video.VideoInfo.abi_info.Size // info
, null
, "priv"
, Gst.Video.VideoInfo.abi_info.Align
, 0
),
new GLib.AbiField("priv"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) // priv
, "info"
, "_gst_reserved"
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
new GLib.AbiField("_gst_reserved"
, -1
, (uint) Marshal.SizeOf(typeof(IntPtr)) * 4 // _gst_reserved
, "priv"
, null
, (uint) Marshal.SizeOf(typeof(IntPtr))
, 0
),
});
return _abi_info;
}
}
// End of the ABI representation.
#endregion
}
}

View file

@ -0,0 +1,51 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct VideoAncillary : IEquatable<VideoAncillary> {
public byte DID;
public byte SDIDBlockNumber;
public byte DataCount;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=0)]
public byte[] Data;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=4)]
private IntPtr[] _gstGstReserved;
public static Gst.Video.VideoAncillary Zero = new Gst.Video.VideoAncillary ();
public static Gst.Video.VideoAncillary New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Video.VideoAncillary.Zero;
return (Gst.Video.VideoAncillary) Marshal.PtrToStructure (raw, typeof (Gst.Video.VideoAncillary));
}
public bool Equals (VideoAncillary other)
{
return true && DID.Equals (other.DID) && SDIDBlockNumber.Equals (other.SDIDBlockNumber) && DataCount.Equals (other.DataCount) && Data.Equals (other.Data);
}
public override bool Equals (object other)
{
return other is VideoAncillary && Equals ((VideoAncillary) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ DID.GetHashCode () ^ SDIDBlockNumber.GetHashCode () ^ DataCount.GetHashCode () ^ Data.GetHashCode ();
}
private static GLib.GType GType {
get { return GLib.GType.Pointer; }
}
#endregion
}
}

View file

@ -0,0 +1,38 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.Video.VideoAncillaryDIDGType))]
public enum VideoAncillaryDID {
Undefined = 0,
Deletion = 128,
Hanc3gAudioDataFirst = 160,
Hanc3gAudioDataLast = 167,
HancHdtvAudioDataFirst = 224,
HancHdtvAudioDataLast = 231,
HancSdtvAudioData1First = 236,
HancSdtvAudioData1Last = 239,
CameraPosition = 240,
HancErrorDetection = 244,
HancSdtvAudioData2First = 248,
HancSdtvAudioData2Last = 255,
}
internal class VideoAncillaryDIDGType {
[DllImport ("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_ancillary_did_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_video_ancillary_did_get_type ());
}
}
}
#endregion
}

View file

@ -0,0 +1,28 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.Video.VideoAncillaryDID16GType))]
public enum VideoAncillaryDID16 {
_708 = 24833,
_608 = 24834,
}
internal class VideoAncillaryDID16GType {
[DllImport ("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_ancillary_di_d16_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_video_ancillary_di_d16_get_type ());
}
}
}
#endregion
}

View file

@ -15,6 +15,8 @@ namespace Gst.Video {
Tff = 2097152,
Rff = 4194304,
Onefield = 8388608,
BottomField = 8388608,
TopField = 10485760,
MultipleView = 16777216,
FirstInBundle = 33554432,
Last = 268435456,

View file

@ -0,0 +1,68 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct VideoCaptionMeta : IEquatable<VideoCaptionMeta> {
public Gst.Meta Meta;
public Gst.Video.VideoCaptionType CaptionType;
[MarshalAs (UnmanagedType.ByValArray, SizeConst=0)]
public byte[] Data;
private UIntPtr size;
public ulong Size {
get {
return (ulong) size;
}
set {
size = new UIntPtr (value);
}
}
public static Gst.Video.VideoCaptionMeta Zero = new Gst.Video.VideoCaptionMeta ();
public static Gst.Video.VideoCaptionMeta New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Video.VideoCaptionMeta.Zero;
return (Gst.Video.VideoCaptionMeta) Marshal.PtrToStructure (raw, typeof (Gst.Video.VideoCaptionMeta));
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_caption_meta_get_info();
public static Gst.MetaInfo Info {
get {
IntPtr raw_ret = gst_video_caption_meta_get_info();
Gst.MetaInfo ret = Gst.MetaInfo.New (raw_ret);
return ret;
}
}
public bool Equals (VideoCaptionMeta other)
{
return true && Meta.Equals (other.Meta) && CaptionType.Equals (other.CaptionType) && Data.Equals (other.Data) && Size.Equals (other.Size);
}
public override bool Equals (object other)
{
return other is VideoCaptionMeta && Equals ((VideoCaptionMeta) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ Meta.GetHashCode () ^ CaptionType.GetHashCode () ^ Data.GetHashCode () ^ Size.GetHashCode ();
}
private static GLib.GType GType {
get { return GLib.GType.Pointer; }
}
#endregion
}
}

View file

@ -0,0 +1,31 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.Video.VideoCaptionTypeGType))]
public enum VideoCaptionType {
Unknown = 0,
Cea608Raw = 1,
Cea608S3341a = 2,
Cea708Raw = 3,
Cea708Cdp = 4,
}
internal class VideoCaptionTypeGType {
[DllImport ("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_caption_type_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_video_caption_type_get_type ());
}
}
}
#endregion
}

View file

@ -15,8 +15,8 @@ namespace Gst.Video {
private int ref_count;
private uint flags;
public uint SystemFrameNumber;
public uint DecodeFrameNumber;
public uint PresentationFrameNumber;
private uint decode_frame_number;
private uint presentation_frame_number;
public ulong Dts;
public ulong Pts;
public ulong Duration;
@ -105,7 +105,7 @@ namespace Gst.Video {
public bool Equals (VideoCodecFrame other)
{
return true && ref_count.Equals (other.ref_count) && flags.Equals (other.flags) && SystemFrameNumber.Equals (other.SystemFrameNumber) && DecodeFrameNumber.Equals (other.DecodeFrameNumber) && PresentationFrameNumber.Equals (other.PresentationFrameNumber) && Dts.Equals (other.Dts) && Pts.Equals (other.Pts) && Duration.Equals (other.Duration) && DistanceFromSync.Equals (other.DistanceFromSync) && InputBuffer.Equals (other.InputBuffer) && OutputBuffer.Equals (other.OutputBuffer) && Deadline.Equals (other.Deadline) && _events.Equals (other._events) && _user_data.Equals (other._user_data) && user_data_destroy_notify.Equals (other.user_data_destroy_notify);
return true && ref_count.Equals (other.ref_count) && flags.Equals (other.flags) && SystemFrameNumber.Equals (other.SystemFrameNumber) && decode_frame_number.Equals (other.decode_frame_number) && presentation_frame_number.Equals (other.presentation_frame_number) && Dts.Equals (other.Dts) && Pts.Equals (other.Pts) && Duration.Equals (other.Duration) && DistanceFromSync.Equals (other.DistanceFromSync) && InputBuffer.Equals (other.InputBuffer) && OutputBuffer.Equals (other.OutputBuffer) && Deadline.Equals (other.Deadline) && _events.Equals (other._events) && _user_data.Equals (other._user_data) && user_data_destroy_notify.Equals (other.user_data_destroy_notify);
}
public override bool Equals (object other)
@ -115,7 +115,7 @@ namespace Gst.Video {
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode () ^ ref_count.GetHashCode () ^ flags.GetHashCode () ^ SystemFrameNumber.GetHashCode () ^ DecodeFrameNumber.GetHashCode () ^ PresentationFrameNumber.GetHashCode () ^ Dts.GetHashCode () ^ Pts.GetHashCode () ^ Duration.GetHashCode () ^ DistanceFromSync.GetHashCode () ^ InputBuffer.GetHashCode () ^ OutputBuffer.GetHashCode () ^ Deadline.GetHashCode () ^ _events.GetHashCode () ^ _user_data.GetHashCode () ^ user_data_destroy_notify.GetHashCode ();
return this.GetType ().FullName.GetHashCode () ^ ref_count.GetHashCode () ^ flags.GetHashCode () ^ SystemFrameNumber.GetHashCode () ^ decode_frame_number.GetHashCode () ^ presentation_frame_number.GetHashCode () ^ Dts.GetHashCode () ^ Pts.GetHashCode () ^ Duration.GetHashCode () ^ DistanceFromSync.GetHashCode () ^ InputBuffer.GetHashCode () ^ OutputBuffer.GetHashCode () ^ Deadline.GetHashCode () ^ _events.GetHashCode () ^ _user_data.GetHashCode () ^ user_data_destroy_notify.GetHashCode ();
}
public static explicit operator GLib.Value (Gst.Video.VideoCodecFrame boxed)

View file

@ -1670,6 +1670,21 @@ namespace Gst.Video {
gst_video_decoder_set_estimate_rate(Handle, enabled);
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_decoder_set_interlaced_output_state(IntPtr raw, int fmt, int mode, uint width, uint height, IntPtr reference);
public Gst.Video.VideoCodecState SetInterlacedOutputState(Gst.Video.VideoFormat fmt, Gst.Video.VideoInterlaceMode mode, uint width, uint height, Gst.Video.VideoCodecState reference) {
IntPtr native_reference = GLib.Marshaller.StructureToPtrAlloc (reference);
IntPtr raw_ret = gst_video_decoder_set_interlaced_output_state(Handle, (int) fmt, (int) mode, width, height, native_reference);
Gst.Video.VideoCodecState ret = Gst.Video.VideoCodecState.New (raw_ret);
Marshal.FreeHGlobal (native_reference);
return ret;
}
public Gst.Video.VideoCodecState SetInterlacedOutputState(Gst.Video.VideoFormat fmt, Gst.Video.VideoInterlaceMode mode, uint width, uint height) {
return SetInterlacedOutputState (fmt, mode, width, height, Gst.Video.VideoCodecState.Zero);
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_video_decoder_set_latency(IntPtr raw, ulong min_latency, ulong max_latency);

View file

@ -91,6 +91,9 @@ namespace Gst.Video {
Gray10Le32 = 78,
Nv1210le32 = 79,
Nv1610le32 = 80,
Nv1210le40 = 81,
Y210 = 82,
Y410 = 83,
}
internal class VideoFormatGType {

View file

@ -16,6 +16,8 @@ namespace Gst.Video {
Tff = 2,
Rff = 4,
Onefield = 8,
BottomField = 8,
TopField = 10,
MultipleView = 16,
FirstInBundle = 32,
}

View file

@ -280,6 +280,15 @@ namespace Gst.Video {
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_video_info_set_interlaced_format(IntPtr raw, int format, int mode, uint width, uint height);
public bool SetInterlacedFormat(Gst.Video.VideoFormat format, Gst.Video.VideoInterlaceMode mode, uint width, uint height) {
bool raw_ret = gst_video_info_set_interlaced_format(Handle, (int) format, (int) mode, width, height);
bool ret = raw_ret;
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_info_to_caps(IntPtr raw);

View file

@ -14,6 +14,7 @@ namespace Gst.Video {
Interleaved = 1,
Mixed = 2,
Fields = 3,
Alternate = 4,
}
internal class VideoInterlaceModeGType {

View file

@ -7,11 +7,24 @@ namespace Gst.Video {
using System.Runtime.InteropServices;
#region Autogenerated code
[Flags]
[GLib.GType (typeof (Gst.Video.VideoOverlayFormatFlagsGType))]
public enum VideoOverlayFormatFlags {
None = 0,
PremultipliedAlpha = 1,
GlobalAlpha = 2,
}
internal class VideoOverlayFormatFlagsGType {
[DllImport ("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_overlay_format_flags_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_video_overlay_format_flags_get_type ());
}
}
}
#endregion
}

View file

@ -54,6 +54,15 @@ namespace Gst.Video {
return result;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_time_code_new_from_date_time_full(uint fps_n, uint fps_d, IntPtr dt, int flags, uint field_count);
public static VideoTimeCode NewFromDateTimeFull(uint fps_n, uint fps_d, GLib.DateTime dt, Gst.Video.VideoTimeCodeFlags flags, uint field_count)
{
VideoTimeCode result = VideoTimeCode.New (gst_video_time_code_new_from_date_time_full(fps_n, fps_d, dt == null ? IntPtr.Zero : dt.Handle, (int) flags, field_count));
return result;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_time_code_new_from_string(IntPtr tc_str);
@ -174,6 +183,19 @@ namespace Gst.Video {
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_video_time_code_init_from_date_time_full(IntPtr raw, uint fps_n, uint fps_d, IntPtr dt, int flags, uint field_count);
public bool InitFromDateTimeFull(uint fps_n, uint fps_d, GLib.DateTime dt, Gst.Video.VideoTimeCodeFlags flags, uint field_count) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_video_time_code_init_from_date_time_full(this_as_native, fps_n, fps_d, dt == null ? IntPtr.Zero : dt.Handle, (int) flags, field_count);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_video_time_code_is_valid(IntPtr raw);

View file

@ -0,0 +1,102 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct VideoVBIEncoder : IEquatable<VideoVBIEncoder> {
public static Gst.Video.VideoVBIEncoder Zero = new Gst.Video.VideoVBIEncoder ();
public static Gst.Video.VideoVBIEncoder New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Video.VideoVBIEncoder.Zero;
return (Gst.Video.VideoVBIEncoder) Marshal.PtrToStructure (raw, typeof (Gst.Video.VideoVBIEncoder));
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_vbi_encoder_new(int format, uint pixel_width);
public static VideoVBIEncoder New(Gst.Video.VideoFormat format, uint pixel_width)
{
VideoVBIEncoder result = VideoVBIEncoder.New (gst_video_vbi_encoder_new((int) format, pixel_width));
return result;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_vbi_encoder_get_type();
public static GLib.GType GType {
get {
IntPtr raw_ret = gst_video_vbi_encoder_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_video_vbi_encoder_add_ancillary(IntPtr raw, bool composite, byte DID, byte SDID_block_number, byte[] data, uint data_count);
public bool AddAncillary(bool composite, byte DID, byte SDID_block_number, byte[] data, uint data_count) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
bool raw_ret = gst_video_vbi_encoder_add_ancillary(this_as_native, composite, DID, SDID_block_number, data, data_count);
bool ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_video_vbi_encoder_write_line(IntPtr raw, byte data);
public void WriteLine(byte data) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_video_vbi_encoder_write_line(this_as_native, data);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
static void ReadNative (IntPtr native, ref Gst.Video.VideoVBIEncoder target)
{
target = New (native);
}
public bool Equals (VideoVBIEncoder other)
{
return true;
}
public override bool Equals (object other)
{
return other is VideoVBIEncoder && Equals ((VideoVBIEncoder) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode ();
}
public static explicit operator GLib.Value (Gst.Video.VideoVBIEncoder boxed)
{
GLib.Value val = GLib.Value.Empty;
val.Init (Gst.Video.VideoVBIEncoder.GType);
val.Val = boxed;
return val;
}
public static explicit operator Gst.Video.VideoVBIEncoder (GLib.Value val)
{
return (Gst.Video.VideoVBIEncoder) val.Val;
}
#endregion
}
}

View file

@ -0,0 +1,105 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
#region Autogenerated code
[StructLayout(LayoutKind.Sequential)]
public partial struct VideoVBIParser : IEquatable<VideoVBIParser> {
public static Gst.Video.VideoVBIParser Zero = new Gst.Video.VideoVBIParser ();
public static Gst.Video.VideoVBIParser New(IntPtr raw) {
if (raw == IntPtr.Zero)
return Gst.Video.VideoVBIParser.Zero;
return (Gst.Video.VideoVBIParser) Marshal.PtrToStructure (raw, typeof (Gst.Video.VideoVBIParser));
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_vbi_parser_new(int format, uint pixel_width);
public static VideoVBIParser New(Gst.Video.VideoFormat format, uint pixel_width)
{
VideoVBIParser result = VideoVBIParser.New (gst_video_vbi_parser_new((int) format, pixel_width));
return result;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_vbi_parser_get_type();
public static GLib.GType GType {
get {
IntPtr raw_ret = gst_video_vbi_parser_get_type();
GLib.GType ret = new GLib.GType(raw_ret);
return ret;
}
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_video_vbi_parser_add_line(IntPtr raw, byte[] data);
public void AddLine(byte[] data) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
gst_video_vbi_parser_add_line(this_as_native, data);
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_video_vbi_parser_get_ancillary(IntPtr raw, IntPtr anc);
public Gst.Video.VideoVBIParserResult GetAncillary(out Gst.Video.VideoAncillary anc) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
IntPtr native_anc = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (Gst.Video.VideoAncillary)));
int raw_ret = gst_video_vbi_parser_get_ancillary(this_as_native, native_anc);
Gst.Video.VideoVBIParserResult ret = (Gst.Video.VideoVBIParserResult) raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
anc = Gst.Video.VideoAncillary.New (native_anc);
Marshal.FreeHGlobal (native_anc);
return ret;
}
static void ReadNative (IntPtr native, ref Gst.Video.VideoVBIParser target)
{
target = New (native);
}
public bool Equals (VideoVBIParser other)
{
return true;
}
public override bool Equals (object other)
{
return other is VideoVBIParser && Equals ((VideoVBIParser) other);
}
public override int GetHashCode ()
{
return this.GetType ().FullName.GetHashCode ();
}
public static explicit operator GLib.Value (Gst.Video.VideoVBIParser boxed)
{
GLib.Value val = GLib.Value.Empty;
val.Init (Gst.Video.VideoVBIParser.GType);
val.Val = boxed;
return val;
}
public static explicit operator Gst.Video.VideoVBIParser (GLib.Value val)
{
return (Gst.Video.VideoVBIParser) val.Val;
}
#endregion
}
}

View file

@ -0,0 +1,29 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.Video {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.Video.VideoVBIParserResultGType))]
public enum VideoVBIParserResult {
Done = 0,
Ok = 1,
Error = 2,
}
internal class VideoVBIParserResultGType {
[DllImport ("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_vbi_parser_result_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_video_vbi_parser_result_get_type ());
}
}
}
#endregion
}

View file

@ -0,0 +1,30 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.WebRTC {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.WebRTC.WebRTCBundlePolicyGType))]
public enum WebRTCBundlePolicy {
None = 0,
Balanced = 1,
MaxCompat = 2,
MaxBundle = 3,
}
internal class WebRTCBundlePolicyGType {
[DllImport ("libgstwebrtc-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_webrtc_bundle_policy_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_webrtc_bundle_policy_get_type ());
}
}
}
#endregion
}

View file

@ -0,0 +1,31 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.WebRTC {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.WebRTC.WebRTCDataChannelStateGType))]
public enum WebRTCDataChannelState {
New = 0,
Connecting = 1,
Open = 2,
Closing = 3,
Closed = 4,
}
internal class WebRTCDataChannelStateGType {
[DllImport ("libgstwebrtc-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_webrtc_data_channel_state_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_webrtc_data_channel_state_get_type ());
}
}
}
#endregion
}

View file

@ -0,0 +1,28 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.WebRTC {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.WebRTC.WebRTCFECTypeGType))]
public enum WebRTCFECType {
None = 0,
UlpRed = 1,
}
internal class WebRTCFECTypeGType {
[DllImport ("libgstwebrtc-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_webrtc_fec_type_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_webrtc_fec_type_get_type ());
}
}
}
#endregion
}

View file

@ -0,0 +1,28 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.WebRTC {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.WebRTC.WebRTCICETransportPolicyGType))]
public enum WebRTCICETransportPolicy {
All = 0,
Relay = 1,
}
internal class WebRTCICETransportPolicyGType {
[DllImport ("libgstwebrtc-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_webrtc_ice_transport_policy_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_webrtc_ice_transport_policy_get_type ());
}
}
}
#endregion
}

View file

@ -0,0 +1,30 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.WebRTC {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.WebRTC.WebRTCPriorityTypeGType))]
public enum WebRTCPriorityType {
VeryLow = 1,
Low = 2,
Medium = 3,
High = 4,
}
internal class WebRTCPriorityTypeGType {
[DllImport ("libgstwebrtc-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_webrtc_priority_type_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_webrtc_priority_type_get_type ());
}
}
}
#endregion
}

View file

@ -0,0 +1,30 @@
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace Gst.WebRTC {
using System;
using System.Runtime.InteropServices;
#region Autogenerated code
[GLib.GType (typeof (Gst.WebRTC.WebRTCSCTPTransportStateGType))]
public enum WebRTCSCTPTransportState {
New = 0,
Connecting = 1,
Connected = 2,
Closed = 3,
}
internal class WebRTCSCTPTransportStateGType {
[DllImport ("libgstwebrtc-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_webrtc_sctp_transport_state_get_type ();
public static GLib.GType GType {
get {
return new GLib.GType (gst_webrtc_sctp_transport_state_get_type ());
}
}
}
#endregion
}

View file

@ -36,6 +36,7 @@ namespace Gst.WebRTC {
public static WebRTCSessionDescription New(Gst.WebRTC.WebRTCSDPType type, Gst.Sdp.SDPMessage sdp)
{
sdp.Owned = false;
WebRTCSessionDescription result = WebRTCSessionDescription.New (gst_webrtc_session_description_new((int) type, sdp == null ? IntPtr.Zero : sdp.Handle));
return result;
}

View file

@ -151,16 +151,6 @@ namespace Gst {
}
}
[GLib.Signal("element-added")]
public event Gst.ElementAddedHandler ElementAdded {
add {
this.AddSignalHandler ("element-added", value, typeof (Gst.ElementAddedArgs));
}
remove {
this.RemoveSignalHandler ("element-added", value);
}
}
[GLib.Signal("deep-element-added")]
public event Gst.DeepElementAddedHandler DeepElementAdded {
add {
@ -171,13 +161,13 @@ namespace Gst {
}
}
[GLib.Signal("element-removed")]
public event Gst.ElementRemovedHandler ElementRemoved {
[GLib.Signal("deep-element-removed")]
public event Gst.DeepElementRemovedHandler DeepElementRemoved {
add {
this.AddSignalHandler ("element-removed", value, typeof (Gst.ElementRemovedArgs));
this.AddSignalHandler ("deep-element-removed", value, typeof (Gst.DeepElementRemovedArgs));
}
remove {
this.RemoveSignalHandler ("element-removed", value);
this.RemoveSignalHandler ("deep-element-removed", value);
}
}
@ -191,13 +181,23 @@ namespace Gst {
}
}
[GLib.Signal("deep-element-removed")]
public event Gst.DeepElementRemovedHandler DeepElementRemoved {
[GLib.Signal("element-added")]
public event Gst.ElementAddedHandler ElementAdded {
add {
this.AddSignalHandler ("deep-element-removed", value, typeof (Gst.DeepElementRemovedArgs));
this.AddSignalHandler ("element-added", value, typeof (Gst.ElementAddedArgs));
}
remove {
this.RemoveSignalHandler ("deep-element-removed", value);
this.RemoveSignalHandler ("element-added", value);
}
}
[GLib.Signal("element-removed")]
public event Gst.ElementRemovedHandler ElementRemoved {
add {
this.AddSignalHandler ("element-removed", value, typeof (Gst.ElementRemovedArgs));
}
remove {
this.RemoveSignalHandler ("element-removed", value);
}
}

View file

@ -588,6 +588,14 @@ namespace Gst {
Raw = gst_buffer_new_wrapped(data, new UIntPtr ((ulong) (data == null ? 0 : data.Length)));
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_new_wrapped_bytes(IntPtr bytes);
public Buffer (GLib.Bytes bytes)
{
Raw = gst_buffer_new_wrapped_bytes(bytes == null ? IntPtr.Zero : bytes.Handle);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_buffer_new_wrapped_full(int flags, byte[] data, UIntPtr maxsize, UIntPtr offset, UIntPtr size, IntPtr user_data, GLib.DestroyNotify notify);

View file

@ -25,16 +25,6 @@ namespace Gst {
Raw = gst_bus_new();
}
[GLib.Signal("sync-message")]
public event Gst.SyncMessageHandler SyncMessage {
add {
this.AddSignalHandler ("sync-message", value, typeof (Gst.SyncMessageArgs));
}
remove {
this.RemoveSignalHandler ("sync-message", value);
}
}
[GLib.Signal("message")]
public event Gst.MessageHandler Message {
add {
@ -45,6 +35,16 @@ namespace Gst {
}
}
[GLib.Signal("sync-message")]
public event Gst.SyncMessageHandler SyncMessage {
add {
this.AddSignalHandler ("sync-message", value, typeof (Gst.SyncMessageArgs));
}
remove {
this.RemoveSignalHandler ("sync-message", value);
}
}
static MessageNativeDelegate Message_cb_delegate;
static MessageNativeDelegate MessageVMCallback {
get {

View file

@ -61,6 +61,15 @@ namespace Gst {
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_caps_copy(IntPtr raw);
public Gst.Caps Copy() {
IntPtr raw_ret = gst_caps_copy(Handle);
Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), true);
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_caps_copy_nth(IntPtr raw, uint nth);
@ -321,6 +330,17 @@ namespace Gst {
SetFeatures (index, Gst.CapsFeatures.Zero);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_caps_set_features_simple(IntPtr raw, IntPtr value);
public Gst.CapsFeatures FeaturesSimple {
set {
IntPtr native_value = GLib.Marshaller.StructureToPtrAlloc (value);
gst_caps_set_features_simple(Handle, native_value);
Marshal.FreeHGlobal (native_value);
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_caps_set_value(IntPtr raw, IntPtr field, IntPtr value);

View file

@ -566,6 +566,15 @@ namespace Gst {
return IdCompareFunc (IntPtr.Zero, IntPtr.Zero);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_clock_id_get_clock(IntPtr id);
public static Gst.Clock IdGetClock(IntPtr id) {
IntPtr raw_ret = gst_clock_id_get_clock(id);
Gst.Clock ret = GLib.Object.GetObject(raw_ret, true) as Gst.Clock;
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern ulong gst_clock_id_get_time(IntPtr id);
@ -598,6 +607,15 @@ namespace Gst {
gst_clock_id_unschedule(id);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_clock_id_uses_clock(IntPtr id, IntPtr clock);
public static bool IdUsesClock(IntPtr id, Gst.Clock clock) {
bool raw_ret = gst_clock_id_uses_clock(id, clock == null ? IntPtr.Zero : clock.Handle);
bool ret = raw_ret;
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_clock_id_wait(IntPtr id, out long jitter);

View file

@ -28,6 +28,7 @@ namespace Gst {
public const string ELEMENT_FACTORY_KLASS_ENCODER = @"Encoder";
public const string ELEMENT_FACTORY_KLASS_ENCRYPTOR = @"Encryptor";
public const string ELEMENT_FACTORY_KLASS_FORMATTER = @"Formatter";
public const string ELEMENT_FACTORY_KLASS_HARDWARE = @"Hardware";
public const string ELEMENT_FACTORY_KLASS_MEDIA_AUDIO = @"Audio";
public const string ELEMENT_FACTORY_KLASS_MEDIA_IMAGE = @"Image";
public const string ELEMENT_FACTORY_KLASS_MEDIA_METADATA = @"Metadata";
@ -63,6 +64,7 @@ namespace Gst {
public const int PARAM_MUTABLE_READY = 1024;
public const int PARAM_USER_SHIFT = 65536;
public const string PROTECTION_SYSTEM_ID_CAPS_FIELD = @"protection-system";
public const string PROTECTION_UNSPECIFIED_SYSTEM_ID = @"unspecified-system-id";
public const string PTR_FORMAT = @"paA";
public const int QUERY_NUM_SHIFT = 8;
public const int QUERY_TYPE_BOTH = 3;
@ -163,9 +165,9 @@ namespace Gst {
public const int VALUE_LESS_THAN = -1;
public const int VALUE_UNORDERED = 2;
public const int VERSION_MAJOR = 1;
public const int VERSION_MICRO = 0;
public const int VERSION_MICRO = 1;
public const int VERSION_MINOR = 15;
public const int VERSION_NANO = 1;
public const int VERSION_NANO = 0;
#endregion
}
}

View file

@ -11,13 +11,13 @@ namespace Gst {
[GLib.GType (typeof (Gst.DebugGraphDetailsGType))]
public enum DebugGraphDetails {
Verbose = -1,
MediaType = 1,
CapsDetails = 2,
NonDefaultParams = 4,
States = 8,
All = 15,
FullParams = 16,
Verbose = -1,
}
internal class DebugGraphDetailsGType {

View file

@ -29,16 +29,6 @@ namespace Gst {
}
}
[GLib.Signal("provider-hidden")]
public event Gst.ProviderHiddenHandler ProviderHidden {
add {
this.AddSignalHandler ("provider-hidden", value, typeof (Gst.ProviderHiddenArgs));
}
remove {
this.RemoveSignalHandler ("provider-hidden", value);
}
}
[GLib.Signal("provider-unhidden")]
public event Gst.ProviderUnhiddenHandler ProviderUnhidden {
add {
@ -49,6 +39,16 @@ namespace Gst {
}
}
[GLib.Signal("provider-hidden")]
public event Gst.ProviderHiddenHandler ProviderHidden {
add {
this.AddSignalHandler ("provider-hidden", value, typeof (Gst.ProviderHiddenArgs));
}
remove {
this.RemoveSignalHandler ("provider-hidden", value);
}
}
static ProviderHiddenNativeDelegate ProviderHidden_cb_delegate;
static ProviderHiddenNativeDelegate ProviderHiddenVMCallback {
get {
@ -368,6 +368,13 @@ namespace Gst {
gst_device_provider_device_add(Handle, device == null ? IntPtr.Zero : device.Handle);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_device_provider_device_changed(IntPtr raw, IntPtr device, IntPtr changed_device);
public void DeviceChanged(Gst.Device device, Gst.Device changed_device) {
gst_device_provider_device_changed(Handle, device == null ? IntPtr.Zero : device.Handle, changed_device == null ? IntPtr.Zero : changed_device.Handle);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_device_provider_device_remove(IntPtr raw, IntPtr device);

View file

@ -236,16 +236,6 @@ namespace Gst {
}
}
[GLib.Signal("pad-added")]
public event Gst.PadAddedHandler PadAdded {
add {
this.AddSignalHandler ("pad-added", value, typeof (Gst.PadAddedArgs));
}
remove {
this.RemoveSignalHandler ("pad-added", value);
}
}
[GLib.Signal("pad-removed")]
public event Gst.PadRemovedHandler PadRemoved {
add {
@ -256,6 +246,16 @@ namespace Gst {
}
}
[GLib.Signal("pad-added")]
public event Gst.PadAddedHandler PadAdded {
add {
this.AddSignalHandler ("pad-added", value, typeof (Gst.PadAddedArgs));
}
remove {
this.RemoveSignalHandler ("pad-added", value);
}
}
static PadAddedNativeDelegate PadAdded_cb_delegate;
static PadAddedNativeDelegate PadAddedVMCallback {
get {

View file

@ -202,15 +202,22 @@ namespace Gst {
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_meta_api_type_register(IntPtr api, IntPtr tags);
static extern IntPtr gst_meta_api_type_register(IntPtr api, IntPtr[] tags);
public static GLib.GType MetaApiTypeRegister(string api, string tags) {
public static GLib.GType MetaApiTypeRegister(string api, string[] tags) {
IntPtr native_api = GLib.Marshaller.StringToPtrGStrdup (api);
IntPtr native_tags = GLib.Marshaller.StringToPtrGStrdup (tags);
int cnt_tags = tags == null ? 0 : tags.Length;
IntPtr[] native_tags = new IntPtr [cnt_tags + 1];
for (int i = 0; i < cnt_tags; i++)
native_tags [i] = GLib.Marshaller.StringToPtrGStrdup (tags[i]);
native_tags [cnt_tags] = IntPtr.Zero;
IntPtr raw_ret = gst_meta_api_type_register(native_api, native_tags);
GLib.GType ret = new GLib.GType(raw_ret);
GLib.Marshaller.Free (native_api);
GLib.Marshaller.Free (native_tags);
for (int i = 0; i < native_tags.Length - 1; i++) {
tags [i] = GLib.Marshaller.Utf8PtrToString (native_tags[i]);
GLib.Marshaller.Free (native_tags[i]);
}
return ret;
}
@ -290,13 +297,20 @@ namespace Gst {
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_protection_filter_systems_by_available_decryptors(IntPtr system_identifiers);
static extern IntPtr gst_protection_filter_systems_by_available_decryptors(IntPtr[] system_identifiers);
public static string[] ProtectionFilterSystemsByAvailableDecryptors(string system_identifiers) {
IntPtr native_system_identifiers = GLib.Marshaller.StringToPtrGStrdup (system_identifiers);
public static string[] ProtectionFilterSystemsByAvailableDecryptors(string[] system_identifiers) {
int cnt_system_identifiers = system_identifiers == null ? 0 : system_identifiers.Length;
IntPtr[] native_system_identifiers = new IntPtr [cnt_system_identifiers + 1];
for (int i = 0; i < cnt_system_identifiers; i++)
native_system_identifiers [i] = GLib.Marshaller.StringToPtrGStrdup (system_identifiers[i]);
native_system_identifiers [cnt_system_identifiers] = IntPtr.Zero;
IntPtr raw_ret = gst_protection_filter_systems_by_available_decryptors(native_system_identifiers);
string[] ret = GLib.Marshaller.NullTermPtrToStringArray (raw_ret, true);
GLib.Marshaller.Free (native_system_identifiers);
for (int i = 0; i < native_system_identifiers.Length - 1; i++) {
system_identifiers [i] = GLib.Marshaller.Utf8PtrToString (native_system_identifiers[i]);
GLib.Marshaller.Free (native_system_identifiers[i]);
}
return ret;
}

View file

@ -201,6 +201,17 @@ namespace Gst {
return device;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_message_parse_device_changed(IntPtr raw, out IntPtr device, out IntPtr changed_device);
public void ParseDeviceChanged(out Gst.Device device, out Gst.Device changed_device) {
IntPtr native_device;
IntPtr native_changed_device;
gst_message_parse_device_changed(Handle, out native_device, out native_changed_device);
device = GLib.Object.GetObject(native_device, true) as Gst.Device;
changed_device = GLib.Object.GetObject(native_changed_device, true) as Gst.Device;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_message_parse_device_removed(IntPtr raw, out IntPtr device);
@ -632,6 +643,15 @@ namespace Gst {
return result;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_message_new_device_changed(IntPtr src, IntPtr device, IntPtr changed_device);
public static Message NewDeviceChanged(Gst.Object src, Gst.Device device, Gst.Device changed_device)
{
Message result = new Message (gst_message_new_device_changed(src == null ? IntPtr.Zero : src.Handle, device == null ? IntPtr.Zero : device.Handle, changed_device == null ? IntPtr.Zero : changed_device.Handle));
return result;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_message_new_device_removed(IntPtr src, IntPtr device);

View file

@ -50,6 +50,7 @@ namespace Gst {
StreamCollection = 2147483652,
StreamsSelected = 2147483653,
Redirect = 2147483654,
DeviceChanged = 2147483654,
Any = 4294967295,
}

View file

@ -27,6 +27,36 @@ namespace Gst {
return (Gst.Meta) Marshal.PtrToStructure (raw, typeof (Gst.Meta));
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int gst_meta_compare_seqnum(IntPtr raw, IntPtr meta2);
public int CompareSeqnum(Gst.Meta meta2) {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
IntPtr native_meta2 = GLib.Marshaller.StructureToPtrAlloc (meta2);
int raw_ret = gst_meta_compare_seqnum(this_as_native, native_meta2);
int ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
Marshal.FreeHGlobal (native_meta2);
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern ulong gst_meta_get_seqnum(IntPtr raw);
public ulong Seqnum {
get {
IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
ulong raw_ret = gst_meta_get_seqnum(this_as_native);
ulong ret = raw_ret;
ReadNative (this_as_native, ref this);
System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_meta_api_type_get_tags(IntPtr api);
@ -46,15 +76,22 @@ namespace Gst {
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_meta_api_type_register(IntPtr api, IntPtr tags);
static extern IntPtr gst_meta_api_type_register(IntPtr api, IntPtr[] tags);
public static GLib.GType ApiTypeRegister(string api, string tags) {
public static GLib.GType ApiTypeRegister(string api, string[] tags) {
IntPtr native_api = GLib.Marshaller.StringToPtrGStrdup (api);
IntPtr native_tags = GLib.Marshaller.StringToPtrGStrdup (tags);
int cnt_tags = tags == null ? 0 : tags.Length;
IntPtr[] native_tags = new IntPtr [cnt_tags + 1];
for (int i = 0; i < cnt_tags; i++)
native_tags [i] = GLib.Marshaller.StringToPtrGStrdup (tags[i]);
native_tags [cnt_tags] = IntPtr.Zero;
IntPtr raw_ret = gst_meta_api_type_register(native_api, native_tags);
GLib.GType ret = new GLib.GType(raw_ret);
GLib.Marshaller.Free (native_api);
GLib.Marshaller.Free (native_tags);
for (int i = 0; i < native_tags.Length - 1; i++) {
tags [i] = GLib.Marshaller.Utf8PtrToString (native_tags[i]);
GLib.Marshaller.Free (native_tags[i]);
}
return ret;
}
@ -86,6 +123,11 @@ namespace Gst {
return ret;
}
static void ReadNative (IntPtr native, ref Gst.Meta target)
{
target = New (native);
}
public bool Equals (Meta other)
{
return true && Flags.Equals (other.Flags) && info.Equals (other.info);

View file

@ -116,6 +116,13 @@ namespace Gst {
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_mini_object_add_parent(IntPtr raw, IntPtr parent);
public void AddParent(Gst.MiniObject parent) {
gst_mini_object_add_parent(Handle, parent == null ? IntPtr.Zero : parent.Handle);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_mini_object_get_qdata(IntPtr raw, uint quark);
@ -145,6 +152,13 @@ namespace Gst {
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_mini_object_remove_parent(IntPtr raw, IntPtr parent);
public void RemoveParent(Gst.MiniObject parent) {
gst_mini_object_remove_parent(Handle, parent == null ? IntPtr.Zero : parent.Handle);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_mini_object_set_qdata(IntPtr raw, uint quark, IntPtr data, GLib.DestroyNotify destroy);
@ -283,7 +297,7 @@ namespace Gst {
, (uint) Marshal.SizeOf(typeof(uint)) // priv_uint
, "free"
, "priv_pointer"
, (long) Marshal.OffsetOf(typeof(GstMiniObject_n_qdataAlign), "priv_uint")
, (long) Marshal.OffsetOf(typeof(GstMiniObject_priv_uintAlign), "priv_uint")
, 0
),
new GLib.AbiField("priv_pointer"
@ -329,7 +343,7 @@ namespace Gst {
}
[StructLayout(LayoutKind.Sequential)]
public struct GstMiniObject_n_qdataAlign
public struct GstMiniObject_priv_uintAlign
{
sbyte f1;
private uint priv_uint;

View file

@ -44,6 +44,17 @@ namespace Gst {
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_poll_fd_ctl_pri(IntPtr raw, IntPtr fd, bool active);
public bool FdCtlPri(Gst.PollFD fd, bool active) {
IntPtr native_fd = GLib.Marshaller.StructureToPtrAlloc (fd);
bool raw_ret = gst_poll_fd_ctl_pri(Handle, native_fd, active);
bool ret = raw_ret;
Marshal.FreeHGlobal (native_fd);
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_poll_fd_ctl_read(IntPtr raw, IntPtr fd, bool active);
@ -88,6 +99,17 @@ namespace Gst {
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_poll_fd_has_pri(IntPtr raw, IntPtr fd);
public bool FdHasPri(Gst.PollFD fd) {
IntPtr native_fd = GLib.Marshaller.StructureToPtrAlloc (fd);
bool raw_ret = gst_poll_fd_has_pri(Handle, native_fd);
bool ret = raw_ret;
Marshal.FreeHGlobal (native_fd);
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_poll_fd_ignored(IntPtr raw, IntPtr fd);

View file

@ -210,6 +210,15 @@ namespace Gst {
caps = native_caps == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (native_caps, typeof (Gst.Caps), false);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_query_parse_bitrate(IntPtr raw, out uint nominal_bitrate);
public uint ParseBitrate() {
uint nominal_bitrate;
gst_query_parse_bitrate(Handle, out nominal_bitrate);
return nominal_bitrate;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_query_parse_buffering_percent(IntPtr raw, out bool busy, out int percent);
@ -474,6 +483,15 @@ namespace Gst {
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_query_set_bitrate(IntPtr raw, uint nominal_bitrate);
public uint Bitrate {
set {
gst_query_set_bitrate(Handle, value);
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_query_set_buffering_percent(IntPtr raw, bool busy, int percent);
@ -659,6 +677,14 @@ namespace Gst {
Raw = gst_query_new_allocation(caps == null ? IntPtr.Zero : caps.Handle, need_pool);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_query_new_bitrate();
public Query ()
{
Raw = gst_query_new_bitrate();
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_query_new_buffering(int format);
@ -706,9 +732,10 @@ namespace Gst {
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_query_new_drain();
public Query ()
public static Query NewDrain()
{
Raw = gst_query_new_drain();
Query result = new Query (gst_query_new_drain());
return result;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]

View file

@ -29,6 +29,7 @@ namespace Gst {
Caps = 43523,
Drain = 46086,
Context = 48643,
Bitrate = 51202,
}
internal class QueryTypeGType {

View file

@ -25,12 +25,18 @@ namespace Gst {
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_sample_get_buffer(IntPtr raw);
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_sample_set_buffer(IntPtr raw, IntPtr buffer);
public Gst.Buffer Buffer {
get {
IntPtr raw_ret = gst_sample_get_buffer(Handle);
Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
return ret;
}
set {
gst_sample_set_buffer(Handle, value == null ? IntPtr.Zero : value.Handle);
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
@ -53,12 +59,18 @@ namespace Gst {
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_sample_get_caps(IntPtr raw);
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_sample_set_caps(IntPtr raw, IntPtr caps);
public Gst.Caps Caps {
get {
IntPtr raw_ret = gst_sample_get_caps(Handle);
Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), false);
return ret;
}
set {
gst_sample_set_caps(Handle, value == null ? IntPtr.Zero : value.Handle);
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
@ -75,12 +87,30 @@ namespace Gst {
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_sample_get_segment(IntPtr raw);
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_sample_set_segment(IntPtr raw, IntPtr value);
public Gst.Segment Segment {
get {
IntPtr raw_ret = gst_sample_get_segment(Handle);
Gst.Segment ret = Gst.Segment.New (raw_ret);
return ret;
}
set {
IntPtr native_value = GLib.Marshaller.StructureToPtrAlloc (value);
gst_sample_set_segment(Handle, native_value);
Marshal.FreeHGlobal (native_value);
}
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_sample_set_info(IntPtr raw, IntPtr info);
public bool SetInfo(Gst.Structure info) {
info.Owned = false;
bool raw_ret = gst_sample_set_info(Handle, info == null ? IntPtr.Zero : info.Handle);
bool ret = raw_ret;
return ret;
}
public Sample(IntPtr raw) : base(raw) {}

View file

@ -117,42 +117,6 @@ namespace Gst {
return dest;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_tag_register(IntPtr name, int flag, IntPtr type, IntPtr nick, IntPtr blurb, GstSharp.TagMergeFuncNative func);
public static void Register(string name, Gst.TagFlag flag, GLib.GType type, string nick, string blurb, Gst.TagMergeFunc func) {
IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
IntPtr native_nick = GLib.Marshaller.StringToPtrGStrdup (nick);
IntPtr native_blurb = GLib.Marshaller.StringToPtrGStrdup (blurb);
GstSharp.TagMergeFuncWrapper func_wrapper = new GstSharp.TagMergeFuncWrapper (func);
gst_tag_register(native_name, (int) flag, type.Val, native_nick, native_blurb, func_wrapper.NativeDelegate);
GLib.Marshaller.Free (native_name);
GLib.Marshaller.Free (native_nick);
GLib.Marshaller.Free (native_blurb);
}
public static void Register(string name, Gst.TagFlag flag, GLib.GType type, string nick, string blurb) {
Register (name, flag, type, nick, blurb, null);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gst_tag_register_static(IntPtr name, int flag, IntPtr type, IntPtr nick, IntPtr blurb, GstSharp.TagMergeFuncNative func);
public static void RegisterStatic(string name, Gst.TagFlag flag, GLib.GType type, string nick, string blurb, Gst.TagMergeFunc func) {
IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
IntPtr native_nick = GLib.Marshaller.StringToPtrGStrdup (nick);
IntPtr native_blurb = GLib.Marshaller.StringToPtrGStrdup (blurb);
GstSharp.TagMergeFuncWrapper func_wrapper = new GstSharp.TagMergeFuncWrapper (func);
gst_tag_register_static(native_name, (int) flag, type.Val, native_nick, native_blurb, func_wrapper.NativeDelegate);
GLib.Marshaller.Free (native_name);
GLib.Marshaller.Free (native_nick);
GLib.Marshaller.Free (native_blurb);
}
public static void RegisterStatic(string name, Gst.TagFlag flag, GLib.GType type, string nick, string blurb) {
RegisterStatic (name, flag, type, nick, blurb, null);
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_tag_check_language_code(IntPtr lang_code);
@ -574,6 +538,15 @@ namespace Gst {
return ret;
}
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_tag_xmp_list_schemas();
public static string[] XmpListSchemas() {
IntPtr raw_ret = gst_tag_xmp_list_schemas();
string[] ret = GLib.Marshaller.NullTermPtrToStringArray (raw_ret, false);
return ret;
}
#endregion
}
}

View file

@ -64,6 +64,9 @@ namespace GtkSharp.GstreamerSharp {
GLib.GType.Register (Gst.Tags.TagDemux.GType, typeof (Gst.Tags.TagDemux));
GLib.GType.Register (Gst.Tags.TagMux.GType, typeof (Gst.Tags.TagMux));
GLib.GType.Register (Gst.Video.ColorBalanceChannel.GType, typeof (Gst.Video.ColorBalanceChannel));
GLib.GType.Register (Gst.Video.VideoAggregator.GType, typeof (Gst.Video.VideoAggregator));
GLib.GType.Register (Gst.Video.VideoAggregatorConvertPad.GType, typeof (Gst.Video.VideoAggregatorConvertPad));
GLib.GType.Register (Gst.Video.VideoAggregatorPad.GType, typeof (Gst.Video.VideoAggregatorPad));
GLib.GType.Register (Gst.Video.VideoBufferPool.GType, typeof (Gst.Video.VideoBufferPool));
GLib.GType.Register (Gst.Video.VideoDecoder.GType, typeof (Gst.Video.VideoDecoder));
GLib.GType.Register (Gst.Video.VideoEncoder.GType, typeof (Gst.Video.VideoEncoder));

View file

@ -858,6 +858,25 @@ int main (int argc, char *argv[]) {
g_print("\"GstColorBalanceChannel.label\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstColorBalanceChannel, label));
g_print("\"GstColorBalanceChannel.min_value\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstColorBalanceChannel, min_value));
g_print("\"GstColorBalanceChannel.max_value\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstColorBalanceChannel, max_value));
g_print("\"sizeof(GstVideoAggregatorClass)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoAggregatorClass));
g_print("\"GstVideoAggregatorClass.update_caps\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorClass, update_caps));
g_print("\"GstVideoAggregatorClass.aggregate_frames\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorClass, aggregate_frames));
g_print("\"GstVideoAggregatorClass.create_output_buffer\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorClass, create_output_buffer));
g_print("\"GstVideoAggregatorClass.find_best_format\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorClass, find_best_format));
g_print("\"sizeof(GstVideoAggregator)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoAggregator));
g_print("\"GstVideoAggregator.info\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregator, info));
g_print("\"GstVideoAggregator.priv\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregator, priv));
g_print("\"sizeof(GstVideoAggregatorConvertPadClass)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoAggregatorConvertPadClass));
g_print("\"GstVideoAggregatorConvertPadClass.create_conversion_info\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorConvertPadClass, create_conversion_info));
g_print("\"sizeof(GstVideoAggregatorConvertPad)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoAggregatorConvertPad));
g_print("\"GstVideoAggregatorConvertPad.priv\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorConvertPad, priv));
g_print("\"sizeof(GstVideoAggregatorPadClass)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoAggregatorPadClass));
g_print("\"GstVideoAggregatorPadClass.update_conversion_info\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorPadClass, update_conversion_info));
g_print("\"GstVideoAggregatorPadClass.prepare_frame\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorPadClass, prepare_frame));
g_print("\"GstVideoAggregatorPadClass.clean_frame\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorPadClass, clean_frame));
g_print("\"sizeof(GstVideoAggregatorPad)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoAggregatorPad));
g_print("\"GstVideoAggregatorPad.info\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorPad, info));
g_print("\"GstVideoAggregatorPad.priv\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoAggregatorPad, priv));
g_print("\"sizeof(GstVideoBufferPool)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoBufferPool));
g_print("\"GstVideoBufferPool.priv\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) G_STRUCT_OFFSET(GstVideoBufferPool, priv));
g_print("\"sizeof(GstVideoDecoderClass)\": \"%" G_GUINT64_FORMAT "\"\n", (guint64) sizeof(GstVideoDecoderClass));

View file

@ -852,6 +852,25 @@ namespace AbiTester {
Console.WriteLine("\"GstColorBalanceChannel.label\": \"" + Gst.Video.ColorBalanceChannel.abi_info.GetFieldOffset("label") + "\"");
Console.WriteLine("\"GstColorBalanceChannel.min_value\": \"" + Gst.Video.ColorBalanceChannel.abi_info.GetFieldOffset("min_value") + "\"");
Console.WriteLine("\"GstColorBalanceChannel.max_value\": \"" + Gst.Video.ColorBalanceChannel.abi_info.GetFieldOffset("max_value") + "\"");
Console.WriteLine("\"sizeof(GstVideoAggregatorClass)\": \"" + Gst.Video.VideoAggregator.class_abi.Size + "\"");
Console.WriteLine("\"GstVideoAggregatorClass.update_caps\": \"" + Gst.Video.VideoAggregator.class_abi.GetFieldOffset("update_caps") + "\"");
Console.WriteLine("\"GstVideoAggregatorClass.aggregate_frames\": \"" + Gst.Video.VideoAggregator.class_abi.GetFieldOffset("aggregate_frames") + "\"");
Console.WriteLine("\"GstVideoAggregatorClass.create_output_buffer\": \"" + Gst.Video.VideoAggregator.class_abi.GetFieldOffset("create_output_buffer") + "\"");
Console.WriteLine("\"GstVideoAggregatorClass.find_best_format\": \"" + Gst.Video.VideoAggregator.class_abi.GetFieldOffset("find_best_format") + "\"");
Console.WriteLine("\"sizeof(GstVideoAggregator)\": \"" + Gst.Video.VideoAggregator.abi_info.Size + "\"");
Console.WriteLine("\"GstVideoAggregator.info\": \"" + Gst.Video.VideoAggregator.abi_info.GetFieldOffset("info") + "\"");
Console.WriteLine("\"GstVideoAggregator.priv\": \"" + Gst.Video.VideoAggregator.abi_info.GetFieldOffset("priv") + "\"");
Console.WriteLine("\"sizeof(GstVideoAggregatorConvertPadClass)\": \"" + Gst.Video.VideoAggregatorConvertPad.class_abi.Size + "\"");
Console.WriteLine("\"GstVideoAggregatorConvertPadClass.create_conversion_info\": \"" + Gst.Video.VideoAggregatorConvertPad.class_abi.GetFieldOffset("create_conversion_info") + "\"");
Console.WriteLine("\"sizeof(GstVideoAggregatorConvertPad)\": \"" + Gst.Video.VideoAggregatorConvertPad.abi_info.Size + "\"");
Console.WriteLine("\"GstVideoAggregatorConvertPad.priv\": \"" + Gst.Video.VideoAggregatorConvertPad.abi_info.GetFieldOffset("priv") + "\"");
Console.WriteLine("\"sizeof(GstVideoAggregatorPadClass)\": \"" + Gst.Video.VideoAggregatorPad.class_abi.Size + "\"");
Console.WriteLine("\"GstVideoAggregatorPadClass.update_conversion_info\": \"" + Gst.Video.VideoAggregatorPad.class_abi.GetFieldOffset("update_conversion_info") + "\"");
Console.WriteLine("\"GstVideoAggregatorPadClass.prepare_frame\": \"" + Gst.Video.VideoAggregatorPad.class_abi.GetFieldOffset("prepare_frame") + "\"");
Console.WriteLine("\"GstVideoAggregatorPadClass.clean_frame\": \"" + Gst.Video.VideoAggregatorPad.class_abi.GetFieldOffset("clean_frame") + "\"");
Console.WriteLine("\"sizeof(GstVideoAggregatorPad)\": \"" + Gst.Video.VideoAggregatorPad.abi_info.Size + "\"");
Console.WriteLine("\"GstVideoAggregatorPad.info\": \"" + Gst.Video.VideoAggregatorPad.abi_info.GetFieldOffset("info") + "\"");
Console.WriteLine("\"GstVideoAggregatorPad.priv\": \"" + Gst.Video.VideoAggregatorPad.abi_info.GetFieldOffset("priv") + "\"");
Console.WriteLine("\"sizeof(GstVideoBufferPool)\": \"" + Gst.Video.VideoBufferPool.abi_info.Size + "\"");
Console.WriteLine("\"GstVideoBufferPool.priv\": \"" + Gst.Video.VideoBufferPool.abi_info.GetFieldOffset("priv") + "\"");
Console.WriteLine("\"sizeof(GstVideoDecoderClass)\": \"" + Gst.Video.VideoDecoder.class_abi.Size + "\"");

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -150,6 +150,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
<add-node path="/api/namespace[@name='Gst']">
<class name="Debug" cname="GstDebug" disable_void_ctor="1"/>
</add-node>
<attr path="/api/namespace/enum[@cname='GstDebugGraphDetails']/member[@cname='GST_DEBUG_GRAPH_SHOW_VERBOSE']" name="value">-1</attr>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_debug')]">/api/namespace/class[@cname='GstDebug']</move-node>
<add-node path="/api/namespace[@name='Gst']">
@ -196,7 +197,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
<attr path="/api/namespace/object[@cname='GstVideoEncoder']/field[@cname='padding']" name="type">gpointer</attr>
<attr path="/api/namespace/struct[@cname='GstByteReader']" name="opaque">1</attr>
<attr path="/api/namespace/struct[@cname='GstAudioRingBufferSpec']" name="opaque">true</attr>
<remove-node path="/api/namespace/enum[@cname='GstVideoBufferFlags']/member[@cname='GST_VIDEO_BUFFER_FLAG_ONEFIELD']"/>
<remove-node path="/api/namespace/enum[@cname='GstVideoFrameFlags']/member[@cname='GST_VIDEO_FRAME_FLAG_ONEFIELD']"/>
<remove-node path="/api/namespace//struct[@cname='GstByteReader']//method"/>
<remove-node path="/api/namespace//method[@cname='gst_buffer_add_video_meta_full']"/>
<attr path="//struct[@name='VideoGLTextureUploadMeta']//field[@cname='user_data_copy' or @cname='user_data_free']" name="hidden">true</attr>
<attr path="//interface[@cname='GstVideoOverlay']//parameter[@type='guintptr']" name="type">gpointer</attr>
<attr path="//method[@cname='gst_video_scaler_2d']" name="name">TwoD</attr>
@ -214,6 +218,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
<attr path="/api/namespace//struct[@cname='GstAudioDownmixMeta']/field[@cname='to_position']" name="type">GstAudioChannelPosition*</attr>
<attr path="/api/namespace/boxed/method[@cname='gst_audio_converter_convert']" name="hidden">true</attr>
<attr path="/api/namespace/object/method[@cname='gst_audio_ring_buffer_prepare_read']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstAudioBuffer']/field[@cname='priv_planes_arr']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstAudioBuffer']/field[@cname='priv_map_infos_arr']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstAudioMeta']/field[@cname='priv_offsets_arr']" name="hidden">true</attr>
<remove-attr path="/api/namespace/boxed/method[@cname='gst_audio_info_set_format']/parameters/parameter[@name='position']" name="array_len"/>
<!-- FIXME Make GstAudioAggregator working -->