summaryrefslogtreecommitdiff
path: root/girs
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2019-02-25 11:33:39 -0300
committerThibault Saunier <tsaunier@igalia.com>2019-02-25 13:36:36 -0300
commit9f1fac402efdbc93ace3f55ff63237793bfb40f5 (patch)
treee84210369cb20916960c0d45bb302b32eff63cfa /girs
parent06ad721f910b9663837c4174ba1876e614cd4558 (diff)
downloadgstreamer-9f1fac402efdbc93ace3f55ff63237793bfb40f5.tar.gz
Update GStreamer with latest master
List of files in sources/meson.build is now aphabetically ordered.
Diffstat (limited to 'girs')
-rw-r--r--girs/Gst-1.0.gir761
-rw-r--r--girs/GstApp-1.0.gir6
-rw-r--r--girs/GstAudio-1.0.gir532
-rw-r--r--girs/GstBase-1.0.gir944
-rw-r--r--girs/GstController-1.0.gir6
-rw-r--r--girs/GstNet-1.0.gir2
-rw-r--r--girs/GstPbutils-1.0.gir32
-rw-r--r--girs/GstRtp-1.0.gir902
-rw-r--r--girs/GstRtsp-1.0.gir248
-rw-r--r--girs/GstSdp-1.0.gir57
-rw-r--r--girs/GstVideo-1.0.gir1408
-rw-r--r--girs/GstWebRTC-1.0.gir152
12 files changed, 4755 insertions, 295 deletions
diff --git a/girs/Gst-1.0.gir b/girs/Gst-1.0.gir
index f46ee1bd0a..9093856b8b 100644
--- a/girs/Gst-1.0.gir
+++ b/girs/Gst-1.0.gir
@@ -1689,6 +1689,24 @@ MT safe.</doc>
</parameter>
</parameters>
</constructor>
+ <constructor name="new_wrapped_bytes"
+ c:identifier="gst_buffer_new_wrapped_bytes"
+ version="1.16">
+ <doc xml:space="preserve">Creates a new #GstBuffer that wraps the given @bytes. The data inside
+@bytes cannot be %NULL and the resulting buffer will be marked as read only.
+
+MT safe.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a new #GstBuffer wrapping @bytes</doc>
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="bytes" transfer-ownership="none">
+ <doc xml:space="preserve">a #GBytes to wrap</doc>
+ <type name="GLib.Bytes" c:type="GBytes*"/>
+ </parameter>
+ </parameters>
+ </constructor>
<constructor name="new_wrapped_full"
c:identifier="gst_buffer_new_wrapped_full">
<doc xml:space="preserve">Allocate a new buffer that wraps the given memory. @data must point to
@@ -4835,7 +4853,10 @@ GstBus API, e.g. gst_bus_pop().</doc>
<doc xml:space="preserve">A #GstBus</doc>
<type name="Bus" c:type="GstBus*"/>
</instance-parameter>
- <parameter name="fd" transfer-ownership="none">
+ <parameter name="fd"
+ direction="out"
+ caller-allocates="1"
+ transfer-ownership="none">
<doc xml:space="preserve">A GPollFD to fill</doc>
<type name="GLib.PollFD" c:type="GPollFD*"/>
</parameter>
@@ -5611,6 +5632,26 @@ be empty</doc>
</parameter>
</parameters>
</method>
+ <method name="copy" c:identifier="gst_caps_copy">
+ <doc xml:space="preserve">Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
+refcount of 1, owned by the caller. The structures are copied as well.
+
+Note that this function is the semantic equivalent of a gst_caps_ref()
+followed by a gst_caps_make_writable(). If you only want to hold on to a
+reference to the data, you should use gst_caps_ref().
+
+When you are finished with the caps, call gst_caps_unref() on it.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">the new #GstCaps</doc>
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="caps" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstCaps.</doc>
+ <type name="Caps" c:type="const GstCaps*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
<method name="copy_nth" c:identifier="gst_caps_copy_nth">
<doc xml:space="preserve">Creates a new #GstCaps and appends a copy of the nth structure
contained in @caps.</doc>
@@ -6162,6 +6203,27 @@ contained in @caps.</doc>
</parameter>
</parameters>
</method>
+ <method name="set_features_simple"
+ c:identifier="gst_caps_set_features_simple"
+ version="1.16">
+ <doc xml:space="preserve">Sets the #GstCapsFeatures @features for all the structures of @caps.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="caps" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstCaps</doc>
+ <type name="Caps" c:type="GstCaps*"/>
+ </instance-parameter>
+ <parameter name="features"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">the #GstCapsFeatures to set</doc>
+ <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="set_simple"
c:identifier="gst_caps_set_simple"
introspectable="0">
@@ -7549,6 +7611,24 @@ MT safe.</doc>
</parameter>
</parameters>
</function>
+ <function name="id_get_clock"
+ c:identifier="gst_clock_id_get_clock"
+ version="1.16">
+ <doc xml:space="preserve">This function returns the underlying clock.</doc>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve">a #GstClock or %NULL when the
+ underlying clock has been freed. Unref after usage.
+
+MT safe.</doc>
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstClockID</doc>
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="id_get_time" c:identifier="gst_clock_id_get_time">
<doc xml:space="preserve">Get the time of the clock ID</doc>
<return-value transfer-ownership="none">
@@ -7611,6 +7691,30 @@ MT safe.</doc>
</parameter>
</parameters>
</function>
+ <function name="id_uses_clock"
+ c:identifier="gst_clock_id_uses_clock"
+ version="1.16">
+ <doc xml:space="preserve">This function returns whether @id uses @clock as the underlying clock.
+@clock can be NULL, in which case the return value indicates whether
+the underlying clock has been freed. If this is the case, the @id is
+no longer usable and should be freed.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">whether the clock @id uses the same underlying #GstClock @clock.
+
+MT safe.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstClockID to check</doc>
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ <parameter name="clock" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstClock to compare against</doc>
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="id_wait" c:identifier="gst_clock_id_wait">
<doc xml:space="preserve">Perform a blocking wait on @id.
@id should have been created with gst_clock_new_single_shot_id()
@@ -9770,7 +9874,7 @@ if @month == -1, then #GstDateTime will created only for @year. If
so on.
Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full" nullable="1">
+ <return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created #GstDateTime</doc>
<type name="DateTime" c:type="GstDateTime*"/>
</return-value>
@@ -9899,7 +10003,7 @@ If @hour is -1, then the #GstDateTime created will only contain @year and
case @minute and @seconds should also be -1.
Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full" nullable="1">
+ <return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created #GstDateTime</doc>
<type name="DateTime" c:type="GstDateTime*"/>
</return-value>
@@ -10029,7 +10133,7 @@ Free-function: gst_date_time_unref</doc>
</constructor>
<method name="get_day" c:identifier="gst_date_time_get_day">
<doc xml:space="preserve">Returns the day of the month of this #GstDateTime.
-Call gst_date_time_has_day before, to avoid warnings.</doc>
+Call gst_date_time_has_day() before, to avoid warnings.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The day of this #GstDateTime</doc>
<type name="gint" c:type="gint"/>
@@ -10044,7 +10148,7 @@ Call gst_date_time_has_day before, to avoid warnings.</doc>
<method name="get_hour" c:identifier="gst_date_time_get_hour">
<doc xml:space="preserve">Retrieves the hour of the day represented by @datetime in the gregorian
calendar. The return is in the range of 0 to 23.
-Call gst_date_time_has_haur before, to avoid warnings.</doc>
+Call gst_date_time_has_time() before, to avoid warnings.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the hour of the day</doc>
<type name="gint" c:type="gint"/>
@@ -10074,7 +10178,7 @@ Call gst_date_time_has_haur before, to avoid warnings.</doc>
<method name="get_minute" c:identifier="gst_date_time_get_minute">
<doc xml:space="preserve">Retrieves the minute of the hour represented by @datetime in the gregorian
calendar.
-Call gst_date_time_has_minute before, to avoid warnings.</doc>
+Call gst_date_time_has_time() before, to avoid warnings.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the minute of the hour</doc>
<type name="gint" c:type="gint"/>
@@ -10088,7 +10192,7 @@ Call gst_date_time_has_minute before, to avoid warnings.</doc>
</method>
<method name="get_month" c:identifier="gst_date_time_get_month">
<doc xml:space="preserve">Returns the month of this #GstDateTime. January is 1, February is 2, etc..
-Call gst_date_time_has_month before, to avoid warnings.</doc>
+Call gst_date_time_has_month() before, to avoid warnings.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The month of this #GstDateTime</doc>
<type name="gint" c:type="gint"/>
@@ -10103,7 +10207,7 @@ Call gst_date_time_has_month before, to avoid warnings.</doc>
<method name="get_second" c:identifier="gst_date_time_get_second">
<doc xml:space="preserve">Retrieves the second of the minute represented by @datetime in the gregorian
calendar.
-Call gst_date_time_has_second before, to avoid warnings.</doc>
+Call gst_date_time_has_time() before, to avoid warnings.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the second represented by @datetime</doc>
<type name="gint" c:type="gint"/>
@@ -10134,7 +10238,7 @@ If @datetime represents UTC time, then the offset is zero.</doc>
</method>
<method name="get_year" c:identifier="gst_date_time_get_year">
<doc xml:space="preserve">Returns the year of this #GstDateTime
-Call gst_date_time_has_year before, to avoid warnings.</doc>
+Call gst_date_time_has_year() before, to avoid warnings.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The year of this #GstDateTime</doc>
<type name="gint" c:type="gint"/>
@@ -10582,7 +10686,7 @@ and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().</doc>
<doc xml:space="preserve">show all the typical details that one might want</doc>
</member>
<member name="verbose"
- value="-1"
+ value="4294967295"
c:identifier="GST_DEBUG_GRAPH_SHOW_VERBOSE"
glib:nick="verbose">
<doc xml:space="preserve">show all details regardless of how large or
@@ -10956,7 +11060,7 @@ device in the PLAYING state.</doc>
<type name="Structure"/>
</property>
<field name="parent">
- <doc xml:space="preserve">The parent #GstObject strucuture.</doc>
+ <doc xml:space="preserve">The parent #GstObject structure.</doc>
<type name="Object" c:type="GstObject"/>
</field>
<field name="priv" readable="0" private="1">
@@ -10979,7 +11083,7 @@ device in the PLAYING state.</doc>
version="1.4">
<doc xml:space="preserve">The class structure for a #GstDevice object.</doc>
<field name="parent_class">
- <doc xml:space="preserve">The parent #GstObjectClass strucuture.</doc>
+ <doc xml:space="preserve">The parent #GstObjectClass structure.</doc>
<type name="ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="create_element">
@@ -11334,7 +11438,7 @@ will be emitted on the bus when the list of devices changes.</doc>
glib:get-type="gst_device_provider_get_type"
glib:type-struct="DeviceProviderClass">
<doc xml:space="preserve">A #GstDeviceProvider subclass is provided by a plugin that handles devices
-if there is a way to programatically list connected devices. It can also
+if there is a way to programmatically list connected devices. It can also
optionally provide updates to the list of connected devices.
Each #GstDeviceProvider subclass is a singleton, a plugin should
@@ -11455,6 +11559,31 @@ will be removed (see gst_object_ref_sink()).</doc>
</parameter>
</parameters>
</method>
+ <method name="device_changed"
+ c:identifier="gst_device_provider_device_changed"
+ version="1.16">
+ <doc xml:space="preserve">This function is used when @changed_device was modified into its new form
+@device. This will post a `DEVICE_CHANGED` message on the bus to let
+the application know that the device was modified. #GstDevice is immutable
+for MT. safety purposes so this is an "atomic" way of letting the application
+know when a device was modified.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="provider" transfer-ownership="none">
+ <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
+ </instance-parameter>
+ <parameter name="device" transfer-ownership="none">
+ <doc xml:space="preserve">the new version of @changed_device</doc>
+ <type name="Device" c:type="GstDevice*"/>
+ </parameter>
+ <parameter name="changed_device" transfer-ownership="none">
+ <doc xml:space="preserve">the old version of the device that has been udpated</doc>
+ <type name="Device" c:type="GstDevice*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="device_remove"
c:identifier="gst_device_provider_device_remove"
version="1.4">
@@ -12192,6 +12321,15 @@ plugin_init (GstPlugin * plugin)
c:type="GST_ELEMENT_FACTORY_KLASS_FORMATTER">
<type name="utf8" c:type="gchar*"/>
</constant>
+ <constant name="ELEMENT_FACTORY_KLASS_HARDWARE"
+ value="Hardware"
+ c:type="GST_ELEMENT_FACTORY_KLASS_HARDWARE"
+ version="1.16">
+ <doc xml:space="preserve">Elements interacting with hardware devices should specify this classifier in
+their metadata. You may need to put the element in "READY" state to test if
+the hardware is present in the system.</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </constant>
<constant name="ELEMENT_FACTORY_KLASS_MEDIA_AUDIO"
value="Audio"
c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO">
@@ -12418,7 +12556,8 @@ for more details and common types. E.g: "Sink/File"</doc>
</constant>
<constant name="ERROR_SYSTEM"
value="system error: %s"
- c:type="GST_ERROR_SYSTEM">
+ c:type="GST_ERROR_SYSTEM"
+ introspectable="0">
<doc xml:space="preserve">Builds a string using errno describing the previously failed system
call. To be used as the debug argument in #GST_ELEMENT_ERROR.</doc>
<type name="utf8" c:type="gchar*"/>
@@ -12980,9 +13119,8 @@ MT safe.</doc>
<doc xml:space="preserve">Adds a pad (link point) to @element. @pad's parent will be set to @element;
see gst_object_set_parent() for refcounting information.
-Pads are not automatically activated so elements should perform the needed
-steps to activate the pad in case this pad is added in the PAUSED or PLAYING
-state. See gst_pad_set_active() for more information about activating pads.
+Pads are automatically activated when added in the PAUSED or PLAYING
+state.
The pad and the element should be unlocked when calling this function.
@@ -14583,6 +14721,10 @@ MT safe.</doc>
<doc xml:space="preserve">Locks the state of an element, so state changes of the parent don't affect
this element anymore.
+Note that this is racy if the state lock of the parent bin is not taken.
+The parent bin might've just checked the flag in another thread and as the
+next step proceed to change the child element's state.
+
MT safe.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the state was changed, %FALSE if bad parameters were given
@@ -17305,7 +17447,7 @@ and make a copy if you want to modify it or store it for later use.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:space="preserve">adress of variable to store the stream</doc>
+ <doc xml:space="preserve">address of variable to store the stream</doc>
<type name="Stream" c:type="GstStream**"/>
</parameter>
</parameters>
@@ -17907,7 +18049,10 @@ exactly</doc>
its real value.</doc>
<type name="gint64" c:type="gint64"/>
</constant>
- <constant name="FOURCC_FORMAT" value="c%c%c%c" c:type="GST_FOURCC_FORMAT">
+ <constant name="FOURCC_FORMAT"
+ value="c%c%c%c"
+ c:type="GST_FOURCC_FORMAT"
+ introspectable="0">
<doc xml:space="preserve">Can be used together with #GST_FOURCC_ARGS to properly output a
#guint32 fourcc value in a printf()-style text message.
@@ -20232,6 +20377,31 @@ of monitored devices.</doc>
</parameter>
</parameters>
</constructor>
+ <constructor name="new_device_changed"
+ c:identifier="gst_message_new_device_changed"
+ version="1.16">
+ <doc xml:space="preserve">Creates a new device-changed message. The device-changed message is produced
+by #GstDeviceProvider or a #GstDeviceMonitor. They announce that a device
+properties has changed and @device represent the new modified version of @changed_device.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a newly allocated #GstMessage</doc>
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <doc xml:space="preserve">The #GstObject that created the message</doc>
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="device" transfer-ownership="none">
+ <doc xml:space="preserve">The newly created device representing @replaced_device
+ with its new configuration.</doc>
+ <type name="Device" c:type="GstDevice*"/>
+ </parameter>
+ <parameter name="changed_device" transfer-ownership="none">
+ <type name="Device" c:type="GstDevice*"/>
+ </parameter>
+ </parameters>
+ </constructor>
<constructor name="new_device_removed"
c:identifier="gst_message_new_device_removed"
version="1.4">
@@ -21519,6 +21689,43 @@ of monitored devices.</doc>
</parameter>
</parameters>
</method>
+ <method name="parse_device_changed"
+ c:identifier="gst_message_parse_device_changed"
+ version="1.16">
+ <doc xml:space="preserve">Parses a device-changed message. The device-changed message is produced by
+#GstDeviceProvider or a #GstDeviceMonitor. It announces the
+disappearance of monitored devices. * It announce that a device properties has
+changed and @device represents the new modified version of @changed_device.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="message" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstMessage of type %GST_MESSAGE_DEVICE_CHANGED</doc>
+ <type name="Message" c:type="GstMessage*"/>
+ </instance-parameter>
+ <parameter name="device"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve">A location where to store a
+ pointer to the updated version of the #GstDevice, or %NULL</doc>
+ <type name="Device" c:type="GstDevice**"/>
+ </parameter>
+ <parameter name="changed_device"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve">A location where to store a
+ pointer to the old version of the #GstDevice, or %NULL</doc>
+ <type name="Device" c:type="GstDevice**"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="parse_device_removed"
c:identifier="gst_message_parse_device_removed"
version="1.4">
@@ -23148,6 +23355,13 @@ was updated.</doc>
try to play the given URL(s). Useful if for example a HTTP 302/303
response is received with a non-HTTP URL inside. (Since 1.10)</doc>
</member>
+ <member name="device_changed"
+ value="2147483654"
+ c:identifier="GST_MESSAGE_DEVICE_CHANGED"
+ glib:nick="device-changed">
+ <doc xml:space="preserve">Message indicating a #GstDevice was changed
+ a #GstDeviceProvider (Since 1.16)</doc>
+ </member>
<member name="any"
value="4294967295"
c:identifier="GST_MESSAGE_ANY"
@@ -23209,6 +23423,42 @@ buffers.</doc>
<doc xml:space="preserve">pointer to the #GstMetaInfo</doc>
<type name="MetaInfo" c:type="const GstMetaInfo*"/>
</field>
+ <method name="compare_seqnum"
+ c:identifier="gst_meta_compare_seqnum"
+ version="1.16">
+ <doc xml:space="preserve">Meta sequence number compare function. Can be used as #GCompareFunc
+or a #GCompareDataFunc.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">a negative number if @meta1 comes before @meta2, 0 if both metas
+ have an equal sequence number, or a positive integer if @meta1 comes
+ after @meta2.</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="meta1" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstMeta</doc>
+ <type name="Meta" c:type="const GstMeta*"/>
+ </instance-parameter>
+ <parameter name="meta2" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstMeta</doc>
+ <type name="Meta" c:type="const GstMeta*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_seqnum"
+ c:identifier="gst_meta_get_seqnum"
+ version="1.16">
+ <doc xml:space="preserve">Gets seqnum for this meta.</doc>
+ <return-value transfer-ownership="none">
+ <type name="guint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="meta" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstMeta</doc>
+ <type name="Meta" c:type="const GstMeta*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
<function name="api_type_get_tags"
c:identifier="gst_meta_api_type_get_tags"
version="1.2">
@@ -23258,7 +23508,9 @@ buffers.</doc>
</parameter>
<parameter name="tags" transfer-ownership="none">
<doc xml:space="preserve">tags for @api</doc>
- <type name="utf8" c:type="const gchar**"/>
+ <array c:type="gchar**">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
</parameter>
</parameters>
</function>
@@ -23489,9 +23741,10 @@ function of the miniobject is called.
A copy can be made with gst_mini_object_copy().
gst_mini_object_is_writable() will return %TRUE when the refcount of the
-object is exactly 1, meaning the current caller has the only reference to the
-object. gst_mini_object_make_writable() will return a writable version of the
-object, which might be a new copy when the refcount was not 1.
+object is exactly 1 and there is no parent or a single parent exists and is
+writable itself, meaning the current caller has the only reference to the
+object. gst_mini_object_make_writable() will return a writable version of
+the object, which might be a new copy when the refcount was not 1.
Opaque data can be associated with a #GstMiniObject with
gst_mini_object_set_qdata() and gst_mini_object_get_qdata(). The data is
@@ -23531,12 +23784,37 @@ and gst_mini_object_weak_unref() respectively.</doc>
<type name="MiniObjectFreeFunction"
c:type="GstMiniObjectFreeFunction"/>
</field>
- <field name="n_qdata" readable="0" private="1">
+ <field name="priv_uint" readable="0" private="1">
<type name="guint" c:type="guint"/>
</field>
- <field name="qdata" readable="0" private="1">
+ <field name="priv_pointer" readable="0" private="1">
<type name="gpointer" c:type="gpointer"/>
</field>
+ <method name="add_parent"
+ c:identifier="gst_mini_object_add_parent"
+ version="1.16">
+ <doc xml:space="preserve">This adds @parent as a parent for @object. Having one ore more parents affects the
+writability of @object: if a @parent is not writable, @object is also not
+writable, regardless of its refcount. @object is only writable if all
+the parents are writable and its own refcount is exactly 1.
+
+Note: This function does not take ownership of @parent and also does not
+take an additional reference. It is the responsibility of the caller to
+remove the parent again at a later time.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstMiniObject</doc>
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </instance-parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <doc xml:space="preserve">a parent #GstMiniObject</doc>
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="copy"
c:identifier="gst_mini_object_copy"
introspectable="0">
@@ -23700,6 +23978,25 @@ is a #GstBuffer.</doc>
</instance-parameter>
</parameters>
</method>
+ <method name="remove_parent"
+ c:identifier="gst_mini_object_remove_parent"
+ version="1.16">
+ <doc xml:space="preserve">This removes @parent as a parent for @object. See
+gst_mini_object_add_parent().</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstMiniObject</doc>
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </instance-parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <doc xml:space="preserve">a parent #GstMiniObject</doc>
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="set_qdata" c:identifier="gst_mini_object_set_qdata">
<doc xml:space="preserve">This sets an opaque, named pointer on a miniobject.
The name is specified through a #GQuark (retrieved e.g. via
@@ -24249,7 +24546,7 @@ has been setup for a non suitable property, %TRUE otherwise.</doc>
</method>
<method name="default_error" c:identifier="gst_object_default_error">
<doc xml:space="preserve">A default error function that uses g_printerr() to display the error message
-and the optional debug sting..
+and the optional debug string..
The default handler will simply print the error string using g_print.</doc>
<return-value transfer-ownership="none">
@@ -24297,7 +24594,7 @@ unreferenced again after use.</doc>
c:identifier="gst_object_get_control_rate">
<doc xml:space="preserve">Obtain the control-rate for this @object. Audio processing #GstElement
objects will use this rate to sub-divide their processing loop and call
-gst_object_sync_values() inbetween. The length of the processing segment
+gst_object_sync_values() in between. The length of the processing segment
should be up to @control-rate nanoseconds.
If the @object is not under property control, this will return
@@ -24649,7 +24946,7 @@ or not.</doc>
c:identifier="gst_object_set_control_rate">
<doc xml:space="preserve">Change the control-rate for this @object. Audio processing #GstElement
objects will use this rate to sub-divide their processing loop and call
-gst_object_sync_values() inbetween. The length of the processing segment
+gst_object_sync_values() in between. The length of the processing segment
should be up to @control-rate nanoseconds.
The control-rate should not change if the element is in %GST_STATE_PAUSED or
@@ -24957,7 +25254,26 @@ they can be changed when the element is in the READY or lower state.</doc>
system.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
- <constant name="PTR_FORMAT" value="paA" c:type="GST_PTR_FORMAT">
+ <constant name="PROTECTION_UNSPECIFIED_SYSTEM_ID"
+ value="unspecified-system-id"
+ c:type="GST_PROTECTION_UNSPECIFIED_SYSTEM_ID"
+ version="1.16">
+ <doc xml:space="preserve">The protection system value of the unspecified UUID.
+In some cases the system protection ID is not present in the contents or in their
+metadata, as encrypted WebM.
+This define is used to set the value of the "system_id" field in GstProtectionEvent,
+with this value, the application will use an external information to choose which
+protection system to use.
+
+Example: The matroskademux uses this value in the case of encrypted WebM,
+the application will choose the appropriate protection system based on the information
+received through EME API.</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </constant>
+ <constant name="PTR_FORMAT"
+ value="paA"
+ c:type="GST_PTR_FORMAT"
+ introspectable="0">
<doc xml:space="preserve">printf format type used to debug GStreamer types. You can use this in
combination with GStreamer's debug logging system as well as the functions
gst_info_vasprintf(), gst_info_strdup_vprintf() and gst_info_strdup_printf()
@@ -25041,9 +25357,8 @@ respectively.</doc>
If name is %NULL, a guaranteed unique name (across all pads)
will be assigned.
This function makes a copy of the name so you can safely free the name.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
-case of an error.
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">a new #GstPad.
MT safe.</doc>
<type name="Pad" c:type="GstPad*"/>
@@ -25068,9 +25383,8 @@ MT safe.</doc>
If name is %NULL, a guaranteed unique name (across all pads)
will be assigned.
This function makes a copy of the name so you can safely free the name.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
-case of an error.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">a new #GstPad.</doc>
<type name="Pad" c:type="GstPad*"/>
</return-value>
<parameters>
@@ -25090,9 +25404,8 @@ case of an error.</doc>
If name is %NULL, a guaranteed unique name (across all pads)
will be assigned.
This function makes a copy of the name so you can safely free the name.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
-case of an error.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">a new #GstPad.</doc>
<type name="Pad" c:type="GstPad*"/>
</return-value>
<parameters>
@@ -27098,7 +27411,11 @@ of the peer sink pad, if present.</doc>
<method name="set_unlink_function_full"
c:identifier="gst_pad_set_unlink_function_full">
<doc xml:space="preserve">Sets the given unlink function for the pad. It will be called
-when the pad is unlinked.</doc>
+when the pad is unlinked.
+
+Note that the pad's lock is already held when the unlink
+function is called, so most pad functions cannot be called
+from within the callback.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -28594,7 +28911,7 @@ and with the given arguments.</doc>
c:identifier="gst_pad_template_new_from_static_pad_template_with_gtype"
version="1.14">
<doc xml:space="preserve">Converts a #GstStaticPadTemplate into a #GstPadTemplate with a type.</doc>
- <return-value transfer-ownership="none">
+ <return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a new #GstPadTemplate.</doc>
<type name="PadTemplate" c:type="GstPadTemplate*"/>
</return-value>
@@ -28614,7 +28931,7 @@ and with the given arguments.</doc>
version="1.14">
<doc xml:space="preserve">Creates a new pad template with a name according to the given template
and with the given arguments.</doc>
- <return-value transfer-ownership="none">
+ <return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a new #GstPadTemplate.</doc>
<type name="PadTemplate" c:type="GstPadTemplate*"/>
</return-value>
@@ -28805,7 +29122,10 @@ Unref after usage.</doc>
</member>
</bitfield>
<callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
- <doc xml:space="preserve">Function signature to handle a unlinking the pad prom its peer.</doc>
+ <doc xml:space="preserve">Function signature to handle a unlinking the pad prom its peer.
+
+The pad's lock is already held when the unlink function is called, so most
+pad functions cannot be called from within the callback.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -28840,13 +29160,13 @@ Unref after usage.</doc>
glib:fundamental="1">
</class>
<record name="ParamSpecArray" c:type="GstParamSpecArray">
- <doc xml:space="preserve">A GParamSpec derived structure that contains the meta data for fractional
-properties.</doc>
+ <doc xml:space="preserve">A GParamSpec derived structure for arrays of values.</doc>
<field name="parent_instance" writable="1">
<doc xml:space="preserve">super class</doc>
<type name="GObject.ParamSpec" c:type="GParamSpec"/>
</field>
<field name="element_spec" writable="1">
+ <doc xml:space="preserve">the #GParamSpec of the type of values in the array</doc>
<type name="GObject.ParamSpec" c:type="GParamSpec*"/>
</field>
</record>
@@ -30458,7 +30778,7 @@ later calling gst_poll_set_controllable()).
New file descriptors are added to the set using gst_poll_add_fd(), and
removed using gst_poll_remove_fd(). Controlling which file descriptors
should be waited for to become readable and/or writable are done using
-gst_poll_fd_ctl_read() and gst_poll_fd_ctl_write().
+gst_poll_fd_ctl_read(), gst_poll_fd_ctl_write() and gst_poll_fd_ctl_pri().
Use gst_poll_wait() to wait for the file descriptors to actually become
readable and/or writable, or to timeout if no file descriptor is available
@@ -30522,6 +30842,32 @@ write to it.</doc>
</parameter>
</parameters>
</method>
+ <method name="fd_ctl_pri"
+ c:identifier="gst_poll_fd_ctl_pri"
+ version="1.16">
+ <doc xml:space="preserve">Control whether the descriptor @fd in @set will be monitored for
+exceptional conditions (POLLPRI).
+
+Not implemented on Windows (will just return %FALSE there).</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if the descriptor was successfully updated.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="set" transfer-ownership="none">
+ <doc xml:space="preserve">a file descriptor set.</doc>
+ <type name="Poll" c:type="GstPoll*"/>
+ </instance-parameter>
+ <parameter name="fd" transfer-ownership="none">
+ <doc xml:space="preserve">a file descriptor.</doc>
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <doc xml:space="preserve">a new status.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="fd_ctl_read" c:identifier="gst_poll_fd_ctl_read">
<doc xml:space="preserve">Control whether the descriptor @fd in @set will be monitored for
readability.</doc>
@@ -30600,6 +30946,27 @@ writability.</doc>
</parameter>
</parameters>
</method>
+ <method name="fd_has_pri"
+ c:identifier="gst_poll_fd_has_pri"
+ version="1.16">
+ <doc xml:space="preserve">Check if @fd in @set has an exceptional condition (POLLPRI).
+
+Not implemented on Windows (will just return %FALSE there).</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if the descriptor has an exceptional condition.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="set" transfer-ownership="none">
+ <doc xml:space="preserve">a file descriptor set.</doc>
+ <type name="Poll" c:type="const GstPoll*"/>
+ </instance-parameter>
+ <parameter name="fd" transfer-ownership="none">
+ <doc xml:space="preserve">a file descriptor.</doc>
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="fd_ignored" c:identifier="gst_poll_fd_ignored">
<doc xml:space="preserve">Mark @fd as ignored so that the next call to gst_poll_wait() will yield
the same result for @fd as last time. This function must be called if no
@@ -30889,7 +31256,7 @@ a list of presets individual presets are read and overlaid in 1) system,
2) application and 3) user order. Whenever an earlier entry is newer, the
later entries will be updated. Since 1.8 you can also provide extra paths
where to find presets through the GST_PRESET_PATH environment variable.
-Presets found in those paths will be concidered as "app presets".</doc>
+Presets found in those paths will be considered as "app presets".</doc>
<function name="get_app_dir" c:identifier="gst_preset_get_app_dir">
<doc xml:space="preserve">Gets the directory for application specific presets if set by the
application.</doc>
@@ -32005,6 +32372,17 @@ Free-function: gst_query_unref()</doc>
</parameter>
</parameters>
</constructor>
+ <constructor name="new_bitrate"
+ c:identifier="gst_query_new_bitrate"
+ version="1.16">
+ <doc xml:space="preserve">Constructs a new query object for querying the bitrate.
+
+Free-function: gst_query_unref()</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a new #GstQuery</doc>
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ </constructor>
<constructor name="new_buffering" c:identifier="gst_query_new_buffering">
<doc xml:space="preserve">Constructs a new query object for querying the buffering status of
a stream.
@@ -32611,6 +32989,29 @@ gst_query_parse_nth_allocation_pool().</doc>
</parameter>
</parameters>
</method>
+ <method name="parse_bitrate"
+ c:identifier="gst_query_parse_bitrate"
+ version="1.16">
+ <doc xml:space="preserve">Get the results of a bitrate query. See also gst_query_set_bitrate().</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="query" transfer-ownership="none">
+ <doc xml:space="preserve">a GST_QUERY_BITRATE type #GstQuery</doc>
+ <type name="Query" c:type="GstQuery*"/>
+ </instance-parameter>
+ <parameter name="nominal_bitrate"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve">The resulting bitrate in bits per second</doc>
+ <type name="guint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="parse_buffering_percent"
c:identifier="gst_query_parse_buffering_percent">
<doc xml:space="preserve">Get the percentage of buffered data. This is a value between 0 and 100.
@@ -33511,6 +33912,26 @@ they should make all future requests to the original URI.</doc>
</parameter>
</parameters>
</method>
+ <method name="set_bitrate"
+ c:identifier="gst_query_set_bitrate"
+ version="1.16">
+ <doc xml:space="preserve">Set the results of a bitrate query. The nominal bitrate is the average
+bitrate expected over the length of the stream as advertised in file
+headers (or similar).</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="query" transfer-ownership="none">
+ <doc xml:space="preserve">a GST_QUERY_BITRATE type #GstQuery</doc>
+ <type name="Query" c:type="GstQuery*"/>
+ </instance-parameter>
+ <parameter name="nominal_bitrate" transfer-ownership="none">
+ <doc xml:space="preserve">the nominal bitrate in bits per second</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="set_buffering_percent"
c:identifier="gst_query_set_buffering_percent">
<doc xml:space="preserve">Set the percentage of buffered data. This is a value between 0 and 100.
@@ -34118,6 +34539,12 @@ to permanent or not.</doc>
<doc xml:space="preserve">query the pipeline-local context from
downstream or upstream (since 1.2)</doc>
</member>
+ <member name="bitrate"
+ value="51202"
+ c:identifier="GST_QUERY_BITRATE"
+ glib:nick="bitrate">
+ <doc xml:space="preserve">the bitrate query (since 1.16)</doc>
+ </member>
<function name="get_flags" c:identifier="gst_query_type_get_flags">
<doc xml:space="preserve">Gets the #GstQueryTypeFlags associated with @type.</doc>
<return-value transfer-ownership="none">
@@ -34899,7 +35326,10 @@ both reading and writing, or either (but unspecified which).</doc>
<doc xml:space="preserve">Constant that defines one GStreamer second.</doc>
<type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
</constant>
- <constant name="SEGMENT_FORMAT" value="paB" c:type="GST_SEGMENT_FORMAT">
+ <constant name="SEGMENT_FORMAT"
+ value="paB"
+ c:type="GST_SEGMENT_FORMAT"
+ introspectable="0">
<doc xml:space="preserve">printf format type used to debug GStreamer segments. You can use this in
combination with GStreamer's debug logging system as well as the functions
gst_info_vasprintf(), gst_info_strdup_vprintf() and gst_info_strdup_printf()
@@ -34920,7 +35350,8 @@ Can be used as a default value in variables used to store seqnum.</doc>
<constant name="STIME_FORMAT"
value="c%"
c:type="GST_STIME_FORMAT"
- version="1.6">
+ version="1.6"
+ introspectable="0">
<doc xml:space="preserve">A string that can be used in printf-like format strings to display a signed
#GstClockTimeDiff or #gint64 value in h:m:s format. Use GST_TIME_ARGS() to
construct the matching arguments.
@@ -35056,10 +35487,28 @@ Free-function: gst_sample_unref</doc>
</instance-parameter>
</parameters>
</method>
+ <method name="set_buffer"
+ c:identifier="gst_sample_set_buffer"
+ version="1.16">
+ <doc xml:space="preserve">Set the buffer associated with @sample. @sample must be writable.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstSample</doc>
+ <type name="Sample" c:type="GstSample*"/>
+ </instance-parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstBuffer</doc>
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="set_buffer_list"
c:identifier="gst_sample_set_buffer_list"
version="1.6">
- <doc xml:space="preserve">Set the buffer list associated with @sample</doc>
+ <doc xml:space="preserve">Set the buffer list associated with @sample. @sample must be writable.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -35074,6 +35523,61 @@ Free-function: gst_sample_unref</doc>
</parameter>
</parameters>
</method>
+ <method name="set_caps"
+ c:identifier="gst_sample_set_caps"
+ version="1.16">
+ <doc xml:space="preserve">Set the caps associated with @sample. @sample must be writable.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstSample</doc>
+ <type name="Sample" c:type="GstSample*"/>
+ </instance-parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstCaps</doc>
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_info"
+ c:identifier="gst_sample_set_info"
+ version="1.16">
+ <doc xml:space="preserve">Set the info structure associated with @sample. @sample must be writable,
+and @info must not have a parent set already.</doc>
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstSample</doc>
+ <type name="Sample" c:type="GstSample*"/>
+ </instance-parameter>
+ <parameter name="info" transfer-ownership="full">
+ <doc xml:space="preserve">A #GstStructure</doc>
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_segment"
+ c:identifier="gst_sample_set_segment"
+ version="1.16">
+ <doc xml:space="preserve">Set the segment associated with @sample. @sample must be writable.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstSample</doc>
+ <type name="Sample" c:type="GstSample*"/>
+ </instance-parameter>
+ <parameter name="segment" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstSegment</doc>
+ <type name="Segment" c:type="const GstSegment*"/>
+ </parameter>
+ </parameters>
+ </method>
</record>
<bitfield name="SchedulingFlags"
glib:type-name="GstSchedulingFlags"
@@ -35677,8 +36181,9 @@ outside of the segment is extrapolated.
When 1 is returned, @running_time resulted in a positive position returned
in @position.
-When this function returns -1, the returned @position should be negated
-to get the real negative segment position.</doc>
+When this function returns -1, the returned @position was &lt; 0, and the value
+in the position variable should be negated to get the real negative segment
+position.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
<type name="gint" c:type="gint"/>
@@ -35863,7 +36368,7 @@ segment. Compared to gst_segment_to_running_time() this function can return
negative running-time.
This function is typically used by elements that need to synchronize buffers
-against the clock or eachother.
+against the clock or each other.
@position can be any value and the result of this function for values outside
of the segment is extrapolated.
@@ -35942,7 +36447,7 @@ segment. Compared to gst_segment_to_stream_time() this function can return
negative stream-time.
This function is typically used by elements that need to synchronize buffers
-against the clock or eachother.
+against the clock or each other.
@position can be any value and the result of this function for values outside
of the segment is extrapolated.
@@ -37553,13 +38058,13 @@ release with either g_free() or the suitable function for the boxed type.</doc>
</method>
<method name="get_array" c:identifier="gst_structure_get_array">
<doc xml:space="preserve">This is useful in language bindings where unknown #GValue types are not
-supported. This function will convert the %GST_TYPE_ARRAY and
-%GST_TYPE_LIST into a newly allocated #GValueArray and return it through
-@array. Be aware that this is slower then getting the #GValue directly.</doc>
+supported. This function will convert the %GST_TYPE_ARRAY into a newly
+allocated #GValueArray and return it through @array. Be aware that this is
+slower then getting the #GValue directly.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
-with @fieldname or the existing field did not contain an int, this function
-returns %FALSE.</doc>
+with @fieldname or the existing field did not contain a %GST_TYPE_ARRAY,
+this function returns %FALSE.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
@@ -37918,13 +38423,13 @@ returns %FALSE.</doc>
</method>
<method name="get_list" c:identifier="gst_structure_get_list">
<doc xml:space="preserve">This is useful in language bindings where unknown #GValue types are not
-supported. This function will convert the %GST_TYPE_ARRAY and
-%GST_TYPE_LIST into a newly allocated GValueArray and return it through
-@array. Be aware that this is slower then getting the #GValue directly.</doc>
+supported. This function will convert the %GST_TYPE_LIST into a newly
+allocated GValueArray and return it through @array. Be aware that this is
+slower then getting the #GValue directly.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
-with @fieldname or the existing field did not contain an int, this function
-returns %FALSE.
+with @fieldname or the existing field did not contain a %GST_TYPE_LIST, this
+function returns %FALSE.
Since 1.12</doc>
<type name="gboolean" c:type="gboolean"/>
@@ -38605,9 +39110,9 @@ Since 1.12</doc>
</method>
<method name="set_list" c:identifier="gst_structure_set_list">
<doc xml:space="preserve">This is useful in language bindings where unknown GValue types are not
-supported. This function will convert a @array to %GST_TYPE_ARRAY and set
+supported. This function will convert a @array to %GST_TYPE_LIST and set
the field specified by @fieldname. Be aware that this is slower then using
-%GST_TYPE_ARRAY in a #GValue directly.
+%GST_TYPE_LIST in a #GValue directly.
Since 1.12</doc>
<return-value transfer-ownership="none">
@@ -39538,7 +40043,8 @@ The higher the value, the more the user likes this media
</constant>
<constant name="TIME_FORMAT"
value="u:%02u:%02u.%09u"
- c:type="GST_TIME_FORMAT">
+ c:type="GST_TIME_FORMAT"
+ introspectable="0">
<doc xml:space="preserve">A string that can be used in printf-like format strings to display a
#GstClockTime value in h:m:s format. Use GST_TIME_ARGS() to construct
the matching arguments.
@@ -42892,7 +43398,7 @@ logs to understand the values.</doc>
glib:type-name="GstTracerValueScope"
glib:get-type="gst_tracer_value_scope_get_type"
c:type="GstTracerValueScope">
- <doc xml:space="preserve">Tracing record will contain fields that contain a meassured value or extra
+ <doc xml:space="preserve">Tracing record will contain fields that contain a measured value or extra
meta-data. One such meta data are values that tell where a measurement was
taken. This enumerating declares to which scope such a meta data field
relates to. If it is e.g. %GST_TRACER_VALUE_SCOPE_PAD, then each of the log
@@ -43166,7 +43672,7 @@ This function is typically called during an element's plugin initialization.</do
glib:type-name="GstTypeFindFactory"
glib:get-type="gst_type_find_factory_get_type"
glib:type-struct="TypeFindFactoryClass">
- <doc xml:space="preserve">These functions allow querying informations about registered typefind
+ <doc xml:space="preserve">These functions allow querying information about registered typefind
functions. How to create and register these functions is described in
the section &lt;link linkend="gstreamer-Writing-typefind-functions"&gt;
"Writing typefind functions"&lt;/link&gt;.
@@ -43625,7 +44131,7 @@ Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.</doc>
glib:get-type="gst_uri_get_type"
c:symbol-prefix="uri">
<doc xml:space="preserve">A #GstUri object can be used to parse and split a URI string into its
-constituant parts. Two #GstUri objects can be joined to make a new #GstUri
+constituent parts. Two #GstUri objects can be joined to make a new #GstUri
using the algorithm described in RFC3986.</doc>
<constructor name="new" c:identifier="gst_uri_new" version="1.6">
<doc xml:space="preserve">Creates a new #GstUri object with the given URI parts. The path and query
@@ -43814,7 +44320,7 @@ If @uri is %NULL then returns %NULL.</doc>
<doc xml:space="preserve">Get the media fragment table from the URI, as defined by "Media Fragments URI 1.0".
Hash table returned by this API is a list of "key-value" pairs, and the each
pair is generated by splitting "URI fragment" per "&amp;" sub-delims, then "key"
-and "value" are splitted by "=" sub-delims. The "key" returned by this API may
+and "value" are split by "=" sub-delims. The "key" returned by this API may
be undefined keyword by standard.
A value may be %NULL to indicate that the key should appear in the fragment
string in the URI, but does not have a value. Free the returned #GHashTable
@@ -44419,7 +44925,7 @@ unset the fragment string.</doc>
reference to the new one is used instead. A value if %NULL for @query_table
will remove the query string from the URI.</doc>
<return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the new table was sucessfully used for the query table.</doc>
+ <doc xml:space="preserve">%TRUE if the new table was successfully used for the query table.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
@@ -44450,7 +44956,7 @@ will remove the query string from the URI.</doc>
indicates that the key has no associated value, but will still be present in
the query string.</doc>
<return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query table was sucessfully updated.</doc>
+ <doc xml:space="preserve">%TRUE if the query table was successfully updated.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
@@ -44723,11 +45229,11 @@ determine a order for the two provided values.</doc>
<doc xml:space="preserve">The major version of GStreamer at compile time:</doc>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="VERSION_MICRO" value="0" c:type="GST_VERSION_MICRO">
+ <constant name="VERSION_MICRO" value="1" c:type="GST_VERSION_MICRO">
<doc xml:space="preserve">The micro version of GStreamer at compile time:</doc>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="VERSION_MINOR" value="14" c:type="GST_VERSION_MINOR">
+ <constant name="VERSION_MINOR" value="15" c:type="GST_VERSION_MINOR">
<doc xml:space="preserve">The minor version of GStreamer at compile time:</doc>
<type name="gint" c:type="gint"/>
</constant>
@@ -45167,6 +45673,78 @@ when there are nested #GstCaps / #GstStructure deeper than one level.</doc>
</parameter>
</parameters>
</function>
+ <function name="clear_mini_object"
+ c:identifier="gst_clear_mini_object"
+ version="1.16"
+ introspectable="0">
+ <doc xml:space="preserve">Clears a reference to a #GstMiniObject.
+
+@object_ptr must not be %NULL.
+
+If the reference is %NULL then this function does nothing.
+Otherwise, the reference count of the object is decreased using
+gst_mini_object_unref() and the pointer is set to %NULL.
+
+A macro is also included that allows this function to be used without
+pointer casts.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object_ptr" transfer-ownership="none">
+ <doc xml:space="preserve">a pointer to a #GstMiniObject reference</doc>
+ <type name="MiniObject" c:type="GstMiniObject**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="clear_object"
+ c:identifier="gst_clear_object"
+ version="1.16"
+ introspectable="0">
+ <doc xml:space="preserve">Clears a reference to a #GstObject.
+
+@object_ptr must not be %NULL.
+
+If the reference is %NULL then this function does nothing.
+Otherwise, the reference count of the object is decreased using
+gst_object_unref() and the pointer is set to %NULL.
+
+A macro is also included that allows this function to be used without
+pointer casts.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object_ptr" transfer-ownership="none">
+ <doc xml:space="preserve">a pointer to a #GstObject reference</doc>
+ <type name="Object" c:type="GstObject**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="clear_structure"
+ c:identifier="gst_clear_structure"
+ version="1.16"
+ introspectable="0">
+ <doc xml:space="preserve">Clears a reference to a #GstStructure.
+
+@structure_ptr must not be %NULL.
+
+If the reference is %NULL then this function does nothing.
+Otherwise, the structure is free'd using gst_structure_free() and the
+pointer is set to %NULL.
+
+A macro is also included that allows this function to be used without
+pointer casts.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="structure_ptr" transfer-ownership="none">
+ <doc xml:space="preserve">a pointer to a #GstStructure reference</doc>
+ <type name="Structure" c:type="GstStructure**"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="core_error_quark"
c:identifier="gst_core_error_quark"
moved-to="CoreError.quark">
@@ -45243,6 +45821,7 @@ dot format.</doc>
<type name="Bin" c:type="GstBin*"/>
</parameter>
<parameter name="details" transfer-ownership="none">
+ <doc xml:space="preserve">type of #GstDebugGraphDetails to use</doc>
<type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
</parameter>
</parameters>
@@ -45264,6 +45843,7 @@ This file can be processed with graphviz to get an image.
<type name="Bin" c:type="GstBin*"/>
</parameter>
<parameter name="details" transfer-ownership="none">
+ <doc xml:space="preserve">type of #GstDebugGraphDetails to use</doc>
<type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
</parameter>
<parameter name="file_name" transfer-ownership="none">
@@ -45285,6 +45865,7 @@ to the filename, so that it can be used to take multiple snapshots.</doc>
<type name="Bin" c:type="GstBin*"/>
</parameter>
<parameter name="details" transfer-ownership="none">
+ <doc xml:space="preserve">type of #GstDebugGraphDetails to use</doc>
<type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
</parameter>
<parameter name="file_name" transfer-ownership="none">
@@ -45550,7 +46131,7 @@ gst_debug_remove_log_function(gst_debug_log_default);</doc>
</function>
<function name="debug_print_stack_trace"
c:identifier="gst_debug_print_stack_trace">
- <doc xml:space="preserve">If libunwind or glibc backtrace are present
+ <doc xml:space="preserve">If libunwind, glibc backtrace or DbgHelp are present
a stack trace is printed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
@@ -46330,7 +46911,9 @@ or gst_init_check().</doc>
</parameter>
<parameter name="tags" transfer-ownership="none">
<doc xml:space="preserve">tags for @api</doc>
- <type name="utf8" c:type="const gchar**"/>
+ <array c:type="gchar**">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
</parameter>
</parameters>
</function>
@@ -46984,7 +47567,8 @@ This function is primarily for printing debug output.</doc>
<doc xml:space="preserve">Iterates the supplied list of UUIDs and checks the GstRegistry for
all the decryptors supporting one of the supplied UUIDs.</doc>
<return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">A null terminated array containing all
+ <doc xml:space="preserve">
+A null terminated array containing all
the @system_identifiers supported by the set of available decryptors, or
%NULL if no matches were found.</doc>
<array c:type="gchar**">
@@ -46993,10 +47577,12 @@ the @system_identifiers supported by the set of available decryptors, or
</return-value>
<parameters>
<parameter name="system_identifiers" transfer-ownership="none">
- <doc xml:space="preserve">A null terminated array of strings
-that contains the UUID values of each protection system that is to be
-checked.</doc>
- <type name="utf8" c:type="const gchar**"/>
+ <doc xml:space="preserve">
+A null terminated array of strings that contains the UUID values of each
+protection system that is to be checked.</doc>
+ <array c:type="gchar**">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
</parameter>
</parameters>
</function>
@@ -47370,7 +47956,9 @@ It creates a copy of the first value from the list.</doc>
</parameter>
</parameters>
</function>
- <function name="tag_register" c:identifier="gst_tag_register">
+ <function name="tag_register"
+ c:identifier="gst_tag_register"
+ introspectable="0">
<doc xml:space="preserve">Registers a new tag type for the use with GStreamer's type system. If a type
with that name is already registered, that one is used.
The old registration may have used a different type however. So don't rely
@@ -47419,15 +48007,15 @@ gst_tag_merge_strings_with_comma().</doc>
<parameter name="func"
transfer-ownership="none"
nullable="1"
- allow-none="1"
- scope="call">
+ allow-none="1">
<doc xml:space="preserve">function for merging multiple values of this tag, or %NULL</doc>
<type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
</parameter>
</parameters>
</function>
<function name="tag_register_static"
- c:identifier="gst_tag_register_static">
+ c:identifier="gst_tag_register_static"
+ introspectable="0">
<doc xml:space="preserve">Registers a new tag type for the use with GStreamer's type system.
Same as gst_tag_register(), but @name, @nick, and @blurb must be
@@ -47461,8 +48049,7 @@ even from dynamically loaded plugins.)</doc>
<parameter name="func"
transfer-ownership="none"
nullable="1"
- allow-none="1"
- scope="call">
+ allow-none="1">
<doc xml:space="preserve">function for merging multiple values of this tag, or %NULL</doc>
<type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
</parameter>
diff --git a/girs/GstApp-1.0.gir b/girs/GstApp-1.0.gir
index 9913b72d62..775b6d294a 100644
--- a/girs/GstApp-1.0.gir
+++ b/girs/GstApp-1.0.gir
@@ -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">
diff --git a/girs/GstAudio-1.0.gir b/girs/GstAudio-1.0.gir
index 8c8bcd08b8..79d07883ed 100644
--- a/girs/GstAudio-1.0.gir
+++ b/girs/GstAudio-1.0.gir
@@ -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
diff --git a/girs/GstBase-1.0.gir b/girs/GstBase-1.0.gir
index 08ee2c704c..3f0363d6a4 100644
--- a/girs/GstBase-1.0.gir
+++ b/girs/GstBase-1.0.gir
@@ -1228,7 +1228,12 @@ sent before pushing the buffer.</doc>
<parameter name="caps" transfer-ownership="none">
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
- <parameter name="ret" transfer-ownership="none">
+ <parameter name="ret"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
<type name="Gst.Caps" c:type="GstCaps**"/>
</parameter>
</parameters>
@@ -1355,9 +1360,40 @@ can reconfigure its global latency.</doc>
</parameter>
</parameters>
</method>
+ <method name="simple_get_next_time"
+ c:identifier="gst_aggregator_simple_get_next_time"
+ version="1.16">
+ <doc xml:space="preserve">This is a simple #GstAggregator::get_next_time implementation that
+just looks at the #GstSegment on the srcpad of the aggregator and bases
+the next time on the running time there.
+
+This is the desired behaviour in most cases where you have a live source
+and you have a dead line based aggregator subclass.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">The running time based on the position</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstAggregator</doc>
+ <type name="Aggregator" c:type="GstAggregator*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
<property name="latency" writable="1" transfer-ownership="none">
<type name="guint64" c:type="guint64"/>
</property>
+ <property name="min-upstream-latency"
+ version="1.16"
+ writable="1"
+ transfer-ownership="none">
+ <doc xml:space="preserve">Force minimum upstream latency (in nanoseconds). When sources with a
+higher latency are expected to be plugged in dynamically after the
+aggregator has started playing, this allows overriding the minimum
+latency reported by the initial source(s). This is only taken into
+account when larger than the actually reported minimum latency.</doc>
+ <type name="guint64" c:type="guint64"/>
+ </property>
<property name="start-time" writable="1" transfer-ownership="none">
<type name="guint64" c:type="guint64"/>
</property>
@@ -1613,7 +1649,12 @@ _finish_buffer from inside that function.</doc>
<parameter name="caps" transfer-ownership="none">
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
- <parameter name="ret" transfer-ownership="none">
+ <parameter name="ret"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
<type name="Gst.Caps" c:type="GstCaps**"/>
</parameter>
</parameters>
@@ -1746,6 +1787,9 @@ This class used to live in gst-plugins-bad and was moved to core.</doc>
<method name="has_buffer"
c:identifier="gst_aggregator_pad_has_buffer"
version="1.14.1">
+ <doc xml:space="preserve">This checks if a pad has a buffer available that will be returned by
+a call to gst_aggregator_pad_peek_buffer() or
+gst_aggregator_pad_pop_buffer().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the pad has a buffer available as the next thing.</doc>
<type name="gboolean" c:type="gboolean"/>
@@ -1804,10 +1848,10 @@ usage.</doc>
<doc xml:space="preserve">last segment received.</doc>
<type name="Gst.Segment" c:type="GstSegment"/>
</field>
- <field name="priv">
+ <field name="priv" readable="0" private="1">
<type name="AggregatorPadPrivate" c:type="GstAggregatorPadPrivate*"/>
</field>
- <field name="_gst_reserved">
+ <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>
@@ -1916,17 +1960,17 @@ a parser and share a lot of rather complex code.
## Set-up phase
- * #GstBaseParse calls @start to inform subclass that data processing is
- about to start now.
+ * #GstBaseParse calls #GstBaseParseClass.start() to inform subclass
+ that data processing is about to start now.
- * #GstBaseParse class calls @set_sink_caps to inform the subclass about
- incoming sinkpad caps. Subclass could already set the srcpad caps
- accordingly, but this might be delayed until calling
- gst_base_parse_finish_frame() with a non-queued frame.
+ * #GstBaseParse class calls #GstBaseParseClass.set_sink_caps() to
+ inform the subclass about incoming sinkpad caps. Subclass could
+ already set the srcpad caps accordingly, but this might be delayed
+ until calling gst_base_parse_finish_frame() with a non-queued frame.
* At least at this point subclass needs to tell the #GstBaseParse class
- how big data chunks it wants to receive (min_frame_size). It can do
- this with gst_base_parse_set_min_frame_size().
+ how big data chunks it wants to receive (minimum frame size ). It can
+ do this with gst_base_parse_set_min_frame_size().
* #GstBaseParse class sets up appropriate data passing mode (pull/push)
and starts to process the data.
@@ -1937,24 +1981,27 @@ a parser and share a lot of rather complex code.
by pulling it from upstream or collecting buffers in an internal
#GstAdapter.
- * A buffer of (at least) min_frame_size bytes is passed to subclass with
- @handle_frame. Subclass checks the contents and can optionally
- return GST_FLOW_OK along with an amount of data to be skipped to find
- a valid frame (which will result in a subsequent DISCONT).
- If, otherwise, the buffer does not hold a complete frame,
- @handle_frame can merely return and will be called again when additional
- data is available. In push mode this amounts to an
- additional input buffer (thus minimal additional latency), in pull mode
- this amounts to some arbitrary reasonable buffer size increase.
- Of course, gst_base_parse_set_min_frame_size() could also be used if a
- very specific known amount of additional data is required.
- If, however, the buffer holds a complete valid frame, it can pass
- the size of this frame to gst_base_parse_finish_frame().
- If acting as a converter, it can also merely indicate consumed input data
- while simultaneously providing custom output data.
- Note that baseclass performs some processing (such as tracking
- overall consumed data rate versus duration) for each finished frame,
- but other state is only updated upon each call to @handle_frame
+ * A buffer of (at least) min_frame_size bytes is passed to subclass
+ with #GstBaseParseClass.handle_frame(). Subclass checks the contents
+ and can optionally return #GST_FLOW_OK along with an amount of data
+ to be skipped to find a valid frame (which will result in a
+ subsequent DISCONT). If, otherwise, the buffer does not hold a
+ complete frame, #GstBaseParseClass.handle_frame() can merely return
+ and will be called again when additional data is available. In push
+ mode this amounts to an additional input buffer (thus minimal
+ additional latency), in pull mode this amounts to some arbitrary
+ reasonable buffer size increase.
+
+ Of course, gst_base_parse_set_min_frame_size() could also be used if
+ a very specific known amount of additional data is required. If,
+ however, the buffer holds a complete valid frame, it can pass the
+ size of this frame to gst_base_parse_finish_frame().
+
+ If acting as a converter, it can also merely indicate consumed input
+ data while simultaneously providing custom output data. Note that
+ baseclass performs some processing (such as tracking overall consumed
+ data rate versus duration) for each finished frame, but other state
+ is only updated upon each call to #GstBaseParseClass.handle_frame()
(such as tracking upstream input timestamp).
Subclass is also responsible for setting the buffer metadata
@@ -1965,28 +2012,30 @@ a parser and share a lot of rather complex code.
duration obtained from configuration (see below), and offset
if meaningful (in pull mode).
- Note that @check_valid_frame might receive any small
- amount of input data when leftover data is being drained (e.g. at EOS).
+ Note that #GstBaseParseClass.handle_frame() might receive any small
+ amount of input data when leftover data is being drained (e.g. at
+ EOS).
- * As part of finish frame processing,
- just prior to actually pushing the buffer in question,
- it is passed to @pre_push_frame which gives subclass yet one
- last chance to examine buffer metadata, or to send some custom (tag)
+ * As part of finish frame processing, just prior to actually pushing
+ the buffer in question, it is passed to
+ #GstBaseParseClass.pre_push_frame() which gives subclass yet one last
+ chance to examine buffer metadata, or to send some custom (tag)
events, or to perform custom (segment) filtering.
* During the parsing process #GstBaseParseClass will handle both srcpad
- and sinkpad events. They will be passed to subclass if @event or
- @src_event callbacks have been provided.
+ and sinkpad events. They will be passed to subclass if
+ #GstBaseParseClass.event() or #GstBaseParseClass.src_event()
+ implementations have been provided.
## Shutdown phase
-* #GstBaseParse class calls @stop to inform the subclass that data
- parsing will be stopped.
+* #GstBaseParse class calls #GstBaseParseClass.stop() to inform the
+ subclass that data parsing will be stopped.
-Subclass is responsible for providing pad template caps for
-source and sink pads. The pads need to be named "sink" and "src". It also
-needs to set the fixed caps on srcpad, when the format is ensured (e.g.
-when base class calls subclass' @set_sink_caps function).
+Subclass is responsible for providing pad template caps for source and
+sink pads. The pads need to be named "sink" and "src". It also needs to
+set the fixed caps on srcpad, when the format is ensured (e.g. when
+base class calls subclass' #GstBaseParseClass.set_sink_caps() function).
This base class uses %GST_FORMAT_DEFAULT as a meaning of frames. So,
subclass conversion routine needs to know that conversion from
@@ -2005,9 +2054,10 @@ Things that subclass need to take care of:
* Fixate the source pad caps when appropriate
* Inform base class how big data chunks should be retrieved. This is
done with gst_base_parse_set_min_frame_size() function.
-* Examine data chunks passed to subclass with @handle_frame and pass
- proper frame(s) to gst_base_parse_finish_frame(), and setting src pad
- caps and timestamps on frame.
+* Examine data chunks passed to subclass with
+ #GstBaseParseClass.handle_frame() and pass proper frame(s) to
+ gst_base_parse_finish_frame(), and setting src pad caps and timestamps
+ on frame.
* Provide conversion functions
* Update the duration information with gst_base_parse_set_duration()
* Optionally passthrough using gst_base_parse_set_passthrough()
@@ -2017,13 +2067,14 @@ Things that subclass need to take care of:
* In particular, if subclass is unable to determine a duration, but
parsing (or specs) yields a frames per seconds rate, then this can be
- provided to #GstBaseParse to enable it to cater for
- buffer time metadata (which will be taken from upstream as much as
+ provided to #GstBaseParse to enable it to cater for buffer time
+ metadata (which will be taken from upstream as much as
possible). Internally keeping track of frame durations and respective
sizes that have been pushed provides #GstBaseParse with an estimated
- bitrate. A default @convert (used if not overridden) will then use these
- rates to perform obvious conversions. These rates are also used to
- update (estimated) duration at regular frame intervals.</doc>
+ bitrate. A default #GstBaseParseClass.convert() (used if not
+ overridden) will then use these rates to perform obvious conversions.
+ These rates are also used to update (estimated) duration at regular
+ frame intervals.</doc>
<virtual-method name="convert">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
@@ -2221,7 +2272,7 @@ to the new entry, etc.</doc>
</method>
<method name="convert_default"
c:identifier="gst_base_parse_convert_default">
- <doc xml:space="preserve">Default implementation of "convert" vmethod in #GstBaseParse class.</doc>
+ <doc xml:space="preserve">Default implementation of #GstBaseParseClass.convert().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if conversion was successful.</doc>
<type name="gboolean" c:type="gboolean"/>
@@ -2496,7 +2547,7 @@ particular parsing of the format, it typically corresponds to 1 frame duration.<
<method name="set_min_frame_size"
c:identifier="gst_base_parse_set_min_frame_size">
<doc xml:space="preserve">Subclass can use this function to tell the base class that it needs to
-give at least #min_size buffers.</doc>
+be given buffers of at least @min_size bytes.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -2506,8 +2557,8 @@ give at least #min_size buffers.</doc>
<type name="BaseParse" c:type="GstBaseParse*"/>
</instance-parameter>
<parameter name="min_size" transfer-ownership="none">
- <doc xml:space="preserve">Minimum size of the data that this base class should give to
- subclass.</doc>
+ <doc xml:space="preserve">Minimum size in bytes of the data that this base class should
+ give to subclass.</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
@@ -2517,10 +2568,10 @@ give at least #min_size buffers.</doc>
<doc xml:space="preserve">Set if the nature of the format or configuration does not allow (much)
parsing, and the parser should operate in passthrough mode (which only
applies when operating in push mode). That is, incoming buffers are
-pushed through unmodified, i.e. no @check_valid_frame or @parse_frame
-callbacks will be invoked, but @pre_push_frame will still be invoked,
-so subclass can perform as much or as little is appropriate for
-passthrough semantics in @pre_push_frame.</doc>
+pushed through unmodified, i.e. no #GstBaseParseClass.handle_frame()
+will be invoked, but #GstBaseParseClass.pre_push_frame() will still be
+invoked, so subclass can perform as much or as little is appropriate for
+passthrough semantics in #GstBaseParseClass.pre_push_frame().</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -2916,21 +2967,26 @@ then use gst_base_parse_frame_init() to initialise it.</doc>
</parameters>
</constructor>
<method name="copy" c:identifier="gst_base_parse_frame_copy">
+ <doc xml:space="preserve">Copies a #GstBaseParseFrame.</doc>
<return-value transfer-ownership="full">
+ <doc xml:space="preserve">A copy of @frame</doc>
<type name="BaseParseFrame" c:type="GstBaseParseFrame*"/>
</return-value>
<parameters>
<instance-parameter name="frame" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBaseParseFrame</doc>
<type name="BaseParseFrame" c:type="GstBaseParseFrame*"/>
</instance-parameter>
</parameters>
</method>
<method name="free" c:identifier="gst_base_parse_frame_free">
+ <doc xml:space="preserve">Frees the provided @frame.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="frame" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstBaseParseFrame</doc>
<type name="BaseParseFrame" c:type="GstBaseParseFrame*"/>
</instance-parameter>
</parameters>
@@ -3466,6 +3522,23 @@ unlimited time.</doc>
</instance-parameter>
</parameters>
</method>
+ <method name="get_processing_deadline"
+ c:identifier="gst_base_sink_get_processing_deadline"
+ version="1.16">
+ <doc xml:space="preserve">Get the processing deadline of @sink. see
+gst_base_sink_set_processing_deadline() for more information about
+the processing deadline.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">the processing deadline</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="sink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBaseSink</doc>
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
<method name="get_render_delay"
c:identifier="gst_base_sink_get_render_delay">
<doc xml:space="preserve">Get the render delay of @sink. see gst_base_sink_set_render_delay() for more
@@ -3738,6 +3811,28 @@ an unlimited time.</doc>
</parameter>
</parameters>
</method>
+ <method name="set_processing_deadline"
+ c:identifier="gst_base_sink_set_processing_deadline"
+ version="1.16">
+ <doc xml:space="preserve">Maximum amount of time (in nanoseconds) that the pipeline can take
+for processing the buffer. This is added to the latency of live
+pipelines.
+
+This function is usually called by subclasses.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="sink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBaseSink</doc>
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </instance-parameter>
+ <parameter name="processing_deadline" transfer-ownership="none">
+ <doc xml:space="preserve">the new processing deadline in nanoseconds.</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="set_qos_enabled"
c:identifier="gst_base_sink_set_qos_enabled">
<doc xml:space="preserve">Configures @sink to send Quality-of-Service events upstream.</doc>
@@ -3983,6 +4078,15 @@ rendering of the buffers when it would exceed to max-bitrate.</doc>
<property name="max-lateness" writable="1" transfer-ownership="none">
<type name="gint64" c:type="gint64"/>
</property>
+ <property name="processing-deadline"
+ version="1.16"
+ writable="1"
+ transfer-ownership="none">
+ <doc xml:space="preserve">Maximum amount of time (in nanoseconds) that the pipeline can take
+for processing the buffer. This is added to the latency of live
+pipelines.</doc>
+ <type name="guint64" c:type="guint64"/>
+ </property>
<property name="qos" writable="1" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</property>
@@ -6329,8 +6433,8 @@ running_time.</doc>
version="1.6">
<doc xml:space="preserve">Updates the srcpad caps and send the caps downstream. This function
can be used by subclasses when they have already negotiated their caps
-but found a change in them (or computed new informations). This way,
-they can notify downstream about that change without loosing any
+but found a change in them (or computed new information). This way,
+they can notify downstream about that change without losing any
buffer.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the caps could be send downstream %FALSE otherwise</doc>
@@ -7188,6 +7292,423 @@ Free-function: gst_bit_reader_free</doc>
</parameters>
</function>
</record>
+ <record name="BitWriter" c:type="GstBitWriter">
+ <doc xml:space="preserve">#GstBitWriter provides a bit writer that can write any number of
+bits into a memory buffer. It provides functions for writing any
+number of bits into 8, 16, 32 and 64 bit variables.</doc>
+ <field name="data" writable="1">
+ <doc xml:space="preserve">Allocated @data for bit writer to write</doc>
+ <type name="guint8" c:type="guint8*"/>
+ </field>
+ <field name="bit_size" writable="1">
+ <doc xml:space="preserve">Size of written @data in bits</doc>
+ <type name="guint" c:type="guint"/>
+ </field>
+ <field name="bit_capacity" readable="0" private="1">
+ <type name="guint" c:type="guint"/>
+ </field>
+ <field name="auto_grow" readable="0" private="1">
+ <type name="gboolean" c:type="gboolean"/>
+ </field>
+ <field name="owned" readable="0" private="1">
+ <type name="gboolean" c:type="gboolean"/>
+ </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="align_bytes" c:identifier="gst_bit_writer_align_bytes">
+ <doc xml:space="preserve">Write trailing bit to align last byte of @data. @trailing_bit can
+only be 1 or 0.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="trailing_bit" transfer-ownership="none">
+ <doc xml:space="preserve">trailing bits of last byte, 0 or 1</doc>
+ <type name="guint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free" c:identifier="gst_bit_writer_free">
+ <doc xml:space="preserve">Frees @bitwriter and the allocated data inside.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="full">
+ <doc xml:space="preserve">#GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="free_and_get_buffer"
+ c:identifier="gst_bit_writer_free_and_get_buffer">
+ <doc xml:space="preserve">Frees @bitwriter without destroying the internal data, which is
+returned as #GstBuffer.
+
+Free-function: gst_buffer_unref</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a new allocated #GstBuffer wrapping the
+ data inside. gst_buffer_unref() after usage.</doc>
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="full">
+ <doc xml:space="preserve">#GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="free_and_get_data"
+ c:identifier="gst_bit_writer_free_and_get_data">
+ <doc xml:space="preserve">Frees @bitwriter without destroying the internal data, which is
+returned.
+
+Free-function: g_free</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">the current data. g_free() after
+ usage.</doc>
+ <array zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="full">
+ <doc xml:space="preserve">#GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_data" c:identifier="gst_bit_writer_get_data">
+ <doc xml:space="preserve">Get written data pointer</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">data pointer</doc>
+ <type name="guint8" c:type="guint8*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="const GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_remaining" c:identifier="gst_bit_writer_get_remaining">
+ <return-value transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <type name="BitWriter" c:type="const GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_size" c:identifier="gst_bit_writer_get_size">
+ <doc xml:space="preserve">Get size of written @data</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">size of bits written in @data</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="const GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="init" c:identifier="gst_bit_writer_init">
+ <doc xml:space="preserve">Initializes @bitwriter to an empty instance.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">#GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="init_with_data"
+ c:identifier="gst_bit_writer_init_with_data">
+ <doc xml:space="preserve">Initializes @bitwriter with the given memory area @data. IF
+@initialized is %TRUE it is possible to read @size bits from the
+#GstBitWriter from the beginning.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">#GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">Memory area for writing</doc>
+ <array length="1" zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <doc xml:space="preserve">Size of @data in bytes</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="initialized" transfer-ownership="none">
+ <doc xml:space="preserve">If %TRUE the complete data can be read from the beginning</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_with_size"
+ c:identifier="gst_bit_writer_init_with_size">
+ <doc xml:space="preserve">Initializes a #GstBitWriter instance and allocates the given data
+@size.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">#GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="size" transfer-ownership="none">
+ <doc xml:space="preserve">the size on bytes to allocate for data</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="fixed" transfer-ownership="none">
+ <doc xml:space="preserve">If %TRUE the data can't be reallocated</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_bits_uint16"
+ c:identifier="gst_bit_writer_put_bits_uint16">
+ <doc xml:space="preserve">Write @nbits bits of @value to #GstBitWriter.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve">value of #guint16 to write</doc>
+ <type name="guint16" c:type="guint16"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <doc xml:space="preserve">number of bits to write</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_bits_uint32"
+ c:identifier="gst_bit_writer_put_bits_uint32">
+ <doc xml:space="preserve">Write @nbits bits of @value to #GstBitWriter.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve">value of #guint32 to write</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <doc xml:space="preserve">number of bits to write</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_bits_uint64"
+ c:identifier="gst_bit_writer_put_bits_uint64">
+ <doc xml:space="preserve">Write @nbits bits of @value to #GstBitWriter.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve">value of #guint64 to write</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <doc xml:space="preserve">number of bits to write</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_bits_uint8"
+ c:identifier="gst_bit_writer_put_bits_uint8">
+ <doc xml:space="preserve">Write @nbits bits of @value to #GstBitWriter.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve">value of #guint8 to write</doc>
+ <type name="guint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <doc xml:space="preserve">number of bits to write</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_bytes" c:identifier="gst_bit_writer_put_bytes">
+ <doc xml:space="preserve">Write @nbytes bytes of @data to #GstBitWriter.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">pointer of data to write</doc>
+ <type name="guint8" c:type="const guint8*"/>
+ </parameter>
+ <parameter name="nbytes" transfer-ownership="none">
+ <doc xml:space="preserve">number of bytes to write</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="reset" c:identifier="gst_bit_writer_reset">
+ <doc xml:space="preserve">Resets @bitwriter and frees the data if it's owned by @bitwriter.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">#GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="reset_and_get_buffer"
+ c:identifier="gst_bit_writer_reset_and_get_buffer">
+ <doc xml:space="preserve">Resets @bitwriter and returns the current data as #GstBuffer.
+
+Free-function: gst_buffer_unref</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a new allocated #GstBuffer wrapping the
+ current data. gst_buffer_unref() after usage.</doc>
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="reset_and_get_data"
+ c:identifier="gst_bit_writer_reset_and_get_data">
+ <doc xml:space="preserve">Resets @bitwriter and returns the current data.
+
+Free-function: g_free</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">the current data. g_free() after
+ usage.</doc>
+ <array zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set_pos" c:identifier="gst_bit_writer_set_pos">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bitwriter" transfer-ownership="none">
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </instance-parameter>
+ <parameter name="pos" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <function name="new"
+ c:identifier="gst_bit_writer_new"
+ introspectable="0">
+ <doc xml:space="preserve">Creates a new, empty #GstBitWriter instance.
+
+Free-function: gst_bit_writer_free</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a new, empty #GstByteWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </return-value>
+ </function>
+ <function name="new_with_data"
+ c:identifier="gst_bit_writer_new_with_data"
+ introspectable="0">
+ <doc xml:space="preserve">Creates a new #GstBitWriter instance with the given memory area. If
+@initialized is %TRUE it is possible to read @size bits from the
+#GstBitWriter from the beginnig.
+
+Free-function: gst_bit_writer_free</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a new #GstBitWriter instance</doc>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">Memory area for writing</doc>
+ <type name="guint8" c:type="guint8*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <doc xml:space="preserve">Size of @data in bytes</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="initialized" transfer-ownership="none">
+ <doc xml:space="preserve">if %TRUE the complete data can be read from the beginning</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="new_with_size"
+ c:identifier="gst_bit_writer_new_with_size"
+ introspectable="0">
+ <return-value>
+ <type name="BitWriter" c:type="GstBitWriter*"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="fixed" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ </record>
<record name="ByteReader" c:type="GstByteReader">
<doc xml:space="preserve">#GstByteReader provides a byte reader that can read different integer and
floating point types from a memory buffer. It provides functions for reading
@@ -10780,7 +11301,10 @@ MT safe.</doc>
<doc xml:space="preserve">The #GstDataQueue</doc>
<type name="DataQueue" c:type="GstDataQueue*"/>
</instance-parameter>
- <parameter name="level" transfer-ownership="none">
+ <parameter name="level"
+ direction="out"
+ caller-allocates="1"
+ transfer-ownership="none">
<doc xml:space="preserve">the location to store the result</doc>
<type name="DataQueueSize" c:type="GstDataQueueSize*"/>
</parameter>
@@ -10854,7 +11378,10 @@ MT safe.</doc>
<doc xml:space="preserve">a #GstDataQueue.</doc>
<type name="DataQueue" c:type="GstDataQueue*"/>
</instance-parameter>
- <parameter name="item" transfer-ownership="none">
+ <parameter name="item"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
<doc xml:space="preserve">pointer to store the returned #GstDataQueueItem.</doc>
<type name="DataQueueItem" c:type="GstDataQueueItem**"/>
</parameter>
@@ -10877,7 +11404,10 @@ MT safe.</doc>
<doc xml:space="preserve">a #GstDataQueue.</doc>
<type name="DataQueue" c:type="GstDataQueue*"/>
</instance-parameter>
- <parameter name="item" transfer-ownership="none">
+ <parameter name="item"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
<doc xml:space="preserve">pointer to store the returned #GstDataQueueItem.</doc>
<type name="DataQueueItem" c:type="GstDataQueueItem**"/>
</parameter>
@@ -11192,7 +11722,7 @@ These rules are:
* %GST_FLOW_OK: otherwise
%GST_FLOW_ERROR or below, GST_FLOW_NOT_NEGOTIATED and GST_FLOW_FLUSHING are
-returned immediatelly from the gst_flow_combiner_update_flow() function.</doc>
+returned immediately from the gst_flow_combiner_update_flow() function.</doc>
<constructor name="new"
c:identifier="gst_flow_combiner_new"
version="1.4">
@@ -11501,6 +12031,21 @@ buffers.</doc>
<doc xml:space="preserve">#GstQueueArray is an object that provides standard queue functionality
based on an array instead of linked lists. This reduces the overhead
caused by memory management by a large factor.</doc>
+ <method name="clear"
+ c:identifier="gst_queue_array_clear"
+ version="1.16"
+ introspectable="0">
+ <doc xml:space="preserve">Clears queue @array and frees all memory associated to it.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="array" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstQueueArray object</doc>
+ <type name="QueueArray" c:type="GstQueueArray*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
<method name="drop_element"
c:identifier="gst_queue_array_drop_element"
version="1.2"
@@ -11556,12 +12101,7 @@ data of the element or structure that was removed into @p_struct if
introspectable="0">
<doc xml:space="preserve">Finds an element in the queue @array, either by comparing every element
with @func or by looking up @data if no compare function @func is provided,
-and returning the index of the found element.
-
-Note that the index is not 0-based, but an internal index number with a
-random offset. The index can be used in connection with
-gst_queue_array_drop_element(). FIXME: return index 0-based and make
-gst_queue_array_drop_element() take a 0-based index.</doc>
+and returning the index of the found element.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">Index of the found element or -1 if nothing was found.</doc>
<type name="guint" c:type="guint"/>
@@ -11670,6 +12210,42 @@ remove it from the queue.</doc>
</instance-parameter>
</parameters>
</method>
+ <method name="peek_nth"
+ c:identifier="gst_queue_array_peek_nth"
+ version="1.16"
+ introspectable="0">
+ <doc xml:space="preserve">Returns the item at @idx in @array, but does not remove it from the queue.</doc>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve">The item, or %NULL if @idx was out of bounds</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="array" transfer-ownership="none">
+ <type name="QueueArray" c:type="GstQueueArray*"/>
+ </instance-parameter>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_nth_struct"
+ c:identifier="gst_queue_array_peek_nth_struct"
+ version="1.16"
+ introspectable="0">
+ <doc xml:space="preserve">Returns the item at @idx in @array, but does not remove it from the queue.</doc>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve">The item, or %NULL if @idx was out of bounds</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="array" transfer-ownership="none">
+ <type name="QueueArray" c:type="GstQueueArray*"/>
+ </instance-parameter>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="peek_tail"
c:identifier="gst_queue_array_peek_tail"
version="1.14"
@@ -11810,6 +12386,34 @@ it from the queue.</doc>
</parameter>
</parameters>
</method>
+ <method name="set_clear_func"
+ c:identifier="gst_queue_array_set_clear_func"
+ version="1.16"
+ introspectable="0">
+ <doc xml:space="preserve">Sets a function to clear an element of @array.
+
+The @clear_func will be called when an element in the array
+data segment is removed and when the array is freed and data
+segment is deallocated as well. @clear_func will be passed a
+pointer to the element to clear, rather than the element itself.
+
+Note that in contrast with other uses of #GDestroyNotify
+functions, @clear_func is expected to clear the contents of
+the array element it is given, but not free the element itself.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="array" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstQueueArray object</doc>
+ <type name="QueueArray" c:type="GstQueueArray*"/>
+ </instance-parameter>
+ <parameter name="clear_func" transfer-ownership="none" scope="async">
+ <doc xml:space="preserve">a function to clear an element of @array</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
<function name="new"
c:identifier="gst_queue_array_new"
version="1.2"
@@ -12109,6 +12713,63 @@ Free-function: gst_caps_unref</doc>
</parameter>
</parameters>
</function>
+ <function name="type_find_helper_for_buffer_with_extension"
+ c:identifier="gst_type_find_helper_for_buffer_with_extension"
+ version="1.16">
+ <doc xml:space="preserve">Tries to find what type of data is contained in the given #GstBuffer, the
+assumption being that the buffer represents the beginning of the stream or
+file.
+
+All available typefinders will be called on the data in order of rank. If
+a typefinding function returns a probability of %GST_TYPE_FIND_MAXIMUM,
+typefinding is stopped immediately and the found caps will be returned
+right away. Otherwise, all available typefind functions will the tried,
+and the caps with the highest probability will be returned, or %NULL if
+the content of the buffer could not be identified.
+
+When @extension is not %NULL, this function will first try the typefind
+functions for the given extension, which might speed up the typefinding
+in many cases.
+
+Free-function: gst_caps_unref</doc>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve">the #GstCaps corresponding to the data,
+ or %NULL if no type could be found. The caller should free the caps
+ returned with gst_caps_unref().</doc>
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">object doing the typefinding, or %NULL (used for logging)</doc>
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstBuffer with data to typefind</doc>
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="extension"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">extension of the media, or %NULL</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="prob"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve">location to store the probability of the found
+ caps, or %NULL</doc>
+ <type name="Gst.TypeFindProbability"
+ c:type="GstTypeFindProbability*"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="type_find_helper_for_data"
c:identifier="gst_type_find_helper_for_data">
<doc xml:space="preserve">Tries to find what type of data is contained in the given @data, the
@@ -12160,6 +12821,69 @@ Free-function: gst_caps_unref</doc>
</parameter>
</parameters>
</function>
+ <function name="type_find_helper_for_data_with_extension"
+ c:identifier="gst_type_find_helper_for_data_with_extension"
+ version="1.16">
+ <doc xml:space="preserve">Tries to find what type of data is contained in the given @data, the
+assumption being that the data represents the beginning of the stream or
+file.
+
+All available typefinders will be called on the data in order of rank. If
+a typefinding function returns a probability of %GST_TYPE_FIND_MAXIMUM,
+typefinding is stopped immediately and the found caps will be returned
+right away. Otherwise, all available typefind functions will the tried,
+and the caps with the highest probability will be returned, or %NULL if
+the content of @data could not be identified.
+
+When @extension is not %NULL, this function will first try the typefind
+functions for the given extension, which might speed up the typefinding
+in many cases.
+
+Free-function: gst_caps_unref</doc>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve">the #GstCaps corresponding to the data,
+ or %NULL if no type could be found. The caller should free the caps
+ returned with gst_caps_unref().</doc>
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">object doing the typefinding, or %NULL (used for logging)</doc>
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">* a pointer with data to typefind</doc>
+ <array length="2" zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <doc xml:space="preserve">the size of @data</doc>
+ <type name="gsize" c:type="gsize"/>
+ </parameter>
+ <parameter name="extension"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">extension of the media, or %NULL</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="prob"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve">location to store the probability of the found
+ caps, or %NULL</doc>
+ <type name="Gst.TypeFindProbability"
+ c:type="GstTypeFindProbability*"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="type_find_helper_for_extension"
c:identifier="gst_type_find_helper_for_extension">
<doc xml:space="preserve">Tries to find the best #GstCaps associated with @extension.
@@ -12232,10 +12956,82 @@ Free-function: gst_caps_unref</doc>
<doc xml:space="preserve">The length in bytes</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
- <parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">extension of the media</doc>
+ <parameter name="extension"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">extension of the media, or %NULL</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="prob"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve">location to store the probability of the found
+ caps, or %NULL</doc>
+ <type name="Gst.TypeFindProbability"
+ c:type="GstTypeFindProbability*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="type_find_helper_get_range_full"
+ c:identifier="gst_type_find_helper_get_range_full"
+ version="1.14.3">
+ <doc xml:space="preserve">Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
+however, this function will use the specified function @func to obtain the
+data needed by the typefind functions, rather than operating on a given
+source pad. This is useful mostly for elements like tag demuxers which
+strip off data at the beginning and/or end of a file and want to typefind
+the stripped data stream before adding their own source pad (the specified
+callback can then call the upstream peer pad with offsets adjusted for the
+tag size, for example).
+
+When @extension is not %NULL, this function will first try the typefind
+functions for the given extension, which might speed up the typefinding
+in many cases.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">the last %GstFlowReturn from pulling a buffer or %GST_FLOW_OK if
+ typefinding was successful.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstObject that will be passed as first argument to @func</doc>
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="parent"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">the parent of @obj or %NULL</doc>
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <doc xml:space="preserve">A generic #GstTypeFindHelperGetRangeFunction that will
+ be used to access data at random offsets when doing the typefinding</doc>
+ <type name="TypeFindHelperGetRangeFunction"
+ c:type="GstTypeFindHelperGetRangeFunction"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <doc xml:space="preserve">The length in bytes</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="extension"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">extension of the media, or %NULL</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
+ <parameter name="caps"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">returned caps</doc>
+ <type name="Gst.Caps" c:type="GstCaps**"/>
+ </parameter>
<parameter name="prob"
direction="out"
caller-allocates="0"
diff --git a/girs/GstController-1.0.gir b/girs/GstController-1.0.gir
index af78936baf..620bc1f97a 100644
--- a/girs/GstController-1.0.gir
+++ b/girs/GstController-1.0.gir
@@ -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>
diff --git a/girs/GstNet-1.0.gir b/girs/GstNet-1.0.gir
index 076f880690..5daf3ce3f3 100644
--- a/girs/GstNet-1.0.gir
+++ b/girs/GstNet-1.0.gir
@@ -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>
diff --git a/girs/GstPbutils-1.0.gir b/girs/GstPbutils-1.0.gir
index 5cb76d9144..71f5f15798 100644
--- a/girs/GstPbutils-1.0.gir
+++ b/girs/GstPbutils-1.0.gir
@@ -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>
diff --git a/girs/GstRtp-1.0.gir b/girs/GstRtp-1.0.gir
index d80e51259f..ee94f7cab9 100644
--- a/girs/GstRtp-1.0.gir
+++ b/girs/GstRtp-1.0.gir
@@ -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>
diff --git a/girs/GstRtsp-1.0.gir b/girs/GstRtsp-1.0.gir
index 19dcbf6a04..6948385339 100644
--- a/girs/GstRtsp-1.0.gir
+++ b/girs/GstRtsp-1.0.gir
@@ -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>
diff --git a/girs/GstSdp-1.0.gir b/girs/GstSdp-1.0.gir
index b877d90067..dc1324da13 100644
--- a/girs/GstSdp-1.0.gir
+++ b/girs/GstSdp-1.0.gir
@@ -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">
diff --git a/girs/GstVideo-1.0.gir b/girs/GstVideo-1.0.gir
index 7deaa9a541..deb1fb324b 100644
--- a/girs/GstVideo-1.0.gir
+++ b/girs/GstVideo-1.0.gir
@@ -48,6 +48,14 @@ When this option is enabled on the bufferpool,
on buffers from the pool.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
+ <constant name="CAPS_FEATURE_FORMAT_INTERLACED"
+ value="format:Interlaced"
+ c:type="GST_CAPS_FEATURE_FORMAT_INTERLACED"
+ version="1.16.">
+ <doc xml:space="preserve">Name of the caps feature indicating that the stream is interlaced. Currently
+it is only used for video.</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </constant>
<constant name="CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META"
value="meta:GstVideoAffineTransformation"
c:type="GST_CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META">
@@ -1555,9 +1563,9 @@ formats. Default is #GST_VIDEO_CHROMA_MODE_FULL.</doc>
<constant name="VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD"
value="GstVideoConverter.chroma-resampler-method"
c:type="GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD">
- <doc xml:space="preserve">#GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
+ <doc xml:space="preserve">#GST_TYPE_VIDEO_RESAMPLER_METHOD, The resampler method to use for
chroma resampling. Other options for the resampler can be used, see
-the #GstResampler. Default is #GST_RESAMPLER_METHOD_LINEAR</doc>
+the #GstVideoResampler. Default is #GST_VIDEO_RESAMPLER_METHOD_LINEAR</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="VIDEO_CONVERTER_OPT_DEST_HEIGHT"
@@ -1634,9 +1642,9 @@ Default is #GST_VIDEO_PRIMARIES_MODE_NONE.</doc>
<constant name="VIDEO_CONVERTER_OPT_RESAMPLER_METHOD"
value="GstVideoConverter.resampler-method"
c:type="GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD">
- <doc xml:space="preserve">#GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
+ <doc xml:space="preserve">#GST_TYPE_VIDEO_RESAMPLER_METHOD, The resampler method to use for
resampling. Other options for the resampler can be used, see
-the #GstResampler. Default is #GST_RESAMPLER_METHOD_CUBIC</doc>
+the #GstVideoResampler. Default is #GST_VIDEO_RESAMPLER_METHOD_CUBIC</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="VIDEO_CONVERTER_OPT_RESAMPLER_TAPS"
@@ -1708,7 +1716,7 @@ of cores.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="VIDEO_FORMATS_ALL"
- value="{ 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 }"
+ value="{ 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 }"
c:type="GST_VIDEO_FORMATS_ALL">
<type name="utf8" c:type="gchar*"/>
</constant>
@@ -1891,6 +1899,495 @@ Performs the multiplication, meta-&gt;matrix X matrix.</doc>
</return-value>
</function>
</record>
+ <class name="VideoAggregator"
+ c:symbol-prefix="video_aggregator"
+ c:type="GstVideoAggregator"
+ parent="GstBase.Aggregator"
+ abstract="1"
+ glib:type-name="GstVideoAggregator"
+ glib:get-type="gst_video_aggregator_get_type"
+ glib:type-struct="VideoAggregatorClass">
+ <doc xml:space="preserve">VideoAggregator can accept AYUV, ARGB and BGRA video streams. For each of the requested
+sink pads it will compare the incoming geometry and framerate to define the
+output parameters. Indeed output video frames will have the geometry of the
+biggest incoming video stream and the framerate of the fastest incoming one.
+
+VideoAggregator will do colorspace conversion.
+
+Zorder for each input stream can be configured on the
+#GstVideoAggregatorPad.</doc>
+ <virtual-method name="aggregate_frames">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </instance-parameter>
+ <parameter name="outbuffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="create_output_buffer">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </instance-parameter>
+ <parameter name="outbuffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="find_best_format">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="vagg" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </instance-parameter>
+ <parameter name="downstream_caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="best_info" transfer-ownership="none">
+ <type name="VideoInfo" c:type="GstVideoInfo*"/>
+ </parameter>
+ <parameter name="at_least_one_alpha" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="update_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </instance-parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <field name="aggregator">
+ <type name="GstBase.Aggregator" c:type="GstAggregator"/>
+ </field>
+ <field name="info">
+ <doc xml:space="preserve">The #GstVideoInfo representing the currently set
+srcpad caps.</doc>
+ <type name="VideoInfo" c:type="GstVideoInfo"/>
+ </field>
+ <field name="priv" readable="0" private="1">
+ <type name="VideoAggregatorPrivate"
+ c:type="GstVideoAggregatorPrivate*"/>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="20">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </field>
+ </class>
+ <record name="VideoAggregatorClass"
+ c:type="GstVideoAggregatorClass"
+ glib:is-gtype-struct-for="VideoAggregator">
+ <field name="parent_class" readable="0" private="1">
+ <type name="GstBase.AggregatorClass" c:type="GstAggregatorClass"/>
+ </field>
+ <field name="update_caps">
+ <callback name="update_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="aggregate_frames">
+ <callback name="aggregate_frames">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="outbuffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="create_output_buffer">
+ <callback name="create_output_buffer">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="outbuffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="find_best_format">
+ <callback name="find_best_format">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="vagg" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="downstream_caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="best_info" transfer-ownership="none">
+ <type name="VideoInfo" c:type="GstVideoInfo*"/>
+ </parameter>
+ <parameter name="at_least_one_alpha" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="20">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </field>
+ </record>
+ <class name="VideoAggregatorConvertPad"
+ c:symbol-prefix="video_aggregator_convert_pad"
+ c:type="GstVideoAggregatorConvertPad"
+ parent="VideoAggregatorPad"
+ glib:type-name="GstVideoAggregatorConvertPad"
+ glib:get-type="gst_video_aggregator_convert_pad_get_type"
+ glib:type-struct="VideoAggregatorConvertPadClass">
+ <doc xml:space="preserve">An implementation of GstPad that can be used with #GstVideoAggregator.
+
+See #GstVideoAggregator for more details.</doc>
+ <virtual-method name="create_conversion_info">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorConvertPad"
+ c:type="GstVideoAggregatorConvertPad*"/>
+ </instance-parameter>
+ <parameter name="agg" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="conversion_info" transfer-ownership="none">
+ <type name="VideoInfo" c:type="GstVideoInfo*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="update_conversion_info"
+ c:identifier="gst_video_aggregator_convert_pad_update_conversion_info">
+ <doc xml:space="preserve">Requests the pad to check and update the converter before the next usage to
+update for any changes that have happened.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoAggregatorPad</doc>
+ <type name="VideoAggregatorConvertPad"
+ c:type="GstVideoAggregatorConvertPad*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <property name="converter-config" writable="1" transfer-ownership="none">
+ <type name="Gst.Structure"/>
+ </property>
+ <field name="parent" readable="0" private="1">
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad"/>
+ </field>
+ <field name="priv" readable="0" private="1">
+ <type name="VideoAggregatorConvertPadPrivate"
+ c:type="GstVideoAggregatorConvertPadPrivate*"/>
+ </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>
+ </class>
+ <record name="VideoAggregatorConvertPadClass"
+ c:type="GstVideoAggregatorConvertPadClass"
+ glib:is-gtype-struct-for="VideoAggregatorConvertPad">
+ <field name="parent_class">
+ <type name="VideoAggregatorPadClass"
+ c:type="GstVideoAggregatorPadClass"/>
+ </field>
+ <field name="create_conversion_info">
+ <callback name="create_conversion_info">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorConvertPad"
+ c:type="GstVideoAggregatorConvertPad*"/>
+ </parameter>
+ <parameter name="agg" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="conversion_info" transfer-ownership="none">
+ <type name="VideoInfo" c:type="GstVideoInfo*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </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>
+ </record>
+ <record name="VideoAggregatorConvertPadPrivate"
+ c:type="GstVideoAggregatorConvertPadPrivate"
+ disguised="1">
+ </record>
+ <class name="VideoAggregatorPad"
+ c:symbol-prefix="video_aggregator_pad"
+ c:type="GstVideoAggregatorPad"
+ parent="GstBase.AggregatorPad"
+ glib:type-name="GstVideoAggregatorPad"
+ glib:get-type="gst_video_aggregator_pad_get_type"
+ glib:type-struct="VideoAggregatorPadClass">
+ <virtual-method name="clean_frame">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </instance-parameter>
+ <parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="prepared_frame" transfer-ownership="none">
+ <type name="VideoFrame" c:type="GstVideoFrame*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="prepare_frame">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </instance-parameter>
+ <parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="prepared_frame" transfer-ownership="none">
+ <type name="VideoFrame" c:type="GstVideoFrame*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="update_conversion_info">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_current_buffer"
+ c:identifier="gst_video_aggregator_pad_get_current_buffer">
+ <doc xml:space="preserve">Returns the currently queued buffer that is going to be used
+for the current output frame.
+
+This must only be called from the aggregate_frames() virtual method,
+or from the prepare_frame() virtual method of the aggregator pads.
+
+The return value is only valid until aggregate_frames() or prepare_frames()
+returns.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">The currently queued buffer</doc>
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoAggregatorPad</doc>
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_prepared_frame"
+ c:identifier="gst_video_aggregator_pad_get_prepared_frame">
+ <doc xml:space="preserve">Returns the currently prepared video frame that has to be aggregated into
+the current output frame.
+
+This must only be called from the aggregate_frames() virtual method,
+or from the prepare_frame() virtual method of the aggregator pads.
+
+The return value is only valid until aggregate_frames() or prepare_frames()
+returns.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">The currently prepared video frame</doc>
+ <type name="VideoFrame" c:type="GstVideoFrame*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoAggregatorPad</doc>
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="has_current_buffer"
+ c:identifier="gst_video_aggregator_pad_has_current_buffer">
+ <doc xml:space="preserve">Checks if the pad currently has a buffer queued that is going to be used
+for the current output frame.
+
+This must only be called from the aggregate_frames() virtual method,
+or from the prepare_frame() virtual method of the aggregator pads.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if the pad has currently a buffer queued</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoAggregatorPad</doc>
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set_needs_alpha"
+ c:identifier="gst_video_aggregator_pad_set_needs_alpha">
+ <doc xml:space="preserve">Allows selecting that this pad requires an output format with alpha</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pad" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoAggregatorPad</doc>
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </instance-parameter>
+ <parameter name="needs_alpha" transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if this pad requires alpha output</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="repeat-after-eos" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="zorder" writable="1" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </property>
+ <field name="parent">
+ <type name="GstBase.AggregatorPad" c:type="GstAggregatorPad"/>
+ </field>
+ <field name="info">
+ <doc xml:space="preserve">The #GstVideoInfo currently set on the pad</doc>
+ <type name="VideoInfo" c:type="GstVideoInfo"/>
+ </field>
+ <field name="priv" readable="0" private="1">
+ <type name="VideoAggregatorPadPrivate"
+ c:type="GstVideoAggregatorPadPrivate*"/>
+ </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>
+ </class>
+ <record name="VideoAggregatorPadClass"
+ c:type="GstVideoAggregatorPadClass"
+ glib:is-gtype-struct-for="VideoAggregatorPad">
+ <field name="parent_class">
+ <type name="GstBase.AggregatorPadClass"
+ c:type="GstAggregatorPadClass"/>
+ </field>
+ <field name="update_conversion_info">
+ <callback name="update_conversion_info">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="prepare_frame">
+ <callback name="prepare_frame">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </parameter>
+ <parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="prepared_frame" transfer-ownership="none">
+ <type name="VideoFrame" c:type="GstVideoFrame*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="clean_frame">
+ <callback name="clean_frame">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="VideoAggregatorPad" c:type="GstVideoAggregatorPad*"/>
+ </parameter>
+ <parameter name="videoaggregator" transfer-ownership="none">
+ <type name="VideoAggregator" c:type="GstVideoAggregator*"/>
+ </parameter>
+ <parameter name="prepared_frame" transfer-ownership="none">
+ <type name="VideoFrame" c:type="GstVideoFrame*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="20">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </field>
+ </record>
+ <record name="VideoAggregatorPadPrivate"
+ c:type="GstVideoAggregatorPadPrivate"
+ disguised="1">
+ </record>
+ <record name="VideoAggregatorPrivate"
+ c:type="GstVideoAggregatorPrivate"
+ disguised="1">
+ </record>
<record name="VideoAlignment" c:type="GstVideoAlignment">
<doc xml:space="preserve">Extra alignment parameters for the memory of video buffers. This
structure is usually used to configure the bufferpool if it supports the
@@ -1961,6 +2458,121 @@ structure is usually used to configure the bufferpool if it supports the
alpha value will be set to #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE</doc>
</member>
</enumeration>
+ <record name="VideoAncillary" c:type="GstVideoAncillary" version="1.16">
+ <doc xml:space="preserve">Video Ancillary data, according to SMPTE-291M specification.
+
+Note that the contents of the data are always stored as 8bit data (i.e. do not contain
+the parity check bits).</doc>
+ <field name="DID" writable="1">
+ <doc xml:space="preserve">The Data Identifier</doc>
+ <type name="guint8" c:type="guint8"/>
+ </field>
+ <field name="SDID_block_number" writable="1">
+ <doc xml:space="preserve">The Secondary Data Identifier (if type 2) or the Data
+ Block Number (if type 1)</doc>
+ <type name="guint8" c:type="guint8"/>
+ </field>
+ <field name="data_count" writable="1">
+ <doc xml:space="preserve">The amount of data (in bytes) in @data (max 255 bytes)</doc>
+ <type name="guint8" c:type="guint8"/>
+ </field>
+ <field name="data" writable="1">
+ <doc xml:space="preserve">The user data content of the Ancillary packet.
+ Does not contain the ADF, DID, SDID nor CS.</doc>
+ <array length="2" zero-terminated="0" c:type="guint8">
+ <type name="guint8" c:type="guint8"/>
+ </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>
+ </record>
+ <enumeration name="VideoAncillaryDID"
+ glib:type-name="GstVideoAncillaryDID"
+ glib:get-type="gst_video_ancillary_did_get_type"
+ c:type="GstVideoAncillaryDID">
+ <member name="undefined"
+ value="0"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_UNDEFINED"
+ glib:nick="undefined">
+ </member>
+ <member name="deletion"
+ value="128"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_DELETION"
+ glib:nick="deletion">
+ </member>
+ <member name="hanc_3g_audio_data_first"
+ value="160"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST"
+ glib:nick="hanc-3g-audio-data-first">
+ </member>
+ <member name="hanc_3g_audio_data_last"
+ value="167"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST"
+ glib:nick="hanc-3g-audio-data-last">
+ </member>
+ <member name="hanc_hdtv_audio_data_first"
+ value="224"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST"
+ glib:nick="hanc-hdtv-audio-data-first">
+ </member>
+ <member name="hanc_hdtv_audio_data_last"
+ value="231"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST"
+ glib:nick="hanc-hdtv-audio-data-last">
+ </member>
+ <member name="hanc_sdtv_audio_data_1_first"
+ value="236"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST"
+ glib:nick="hanc-sdtv-audio-data-1-first">
+ </member>
+ <member name="hanc_sdtv_audio_data_1_last"
+ value="239"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST"
+ glib:nick="hanc-sdtv-audio-data-1-last">
+ </member>
+ <member name="camera_position"
+ value="240"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION"
+ glib:nick="camera-position">
+ </member>
+ <member name="hanc_error_detection"
+ value="244"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION"
+ glib:nick="hanc-error-detection">
+ </member>
+ <member name="hanc_sdtv_audio_data_2_first"
+ value="248"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST"
+ glib:nick="hanc-sdtv-audio-data-2-first">
+ </member>
+ <member name="hanc_sdtv_audio_data_2_last"
+ value="255"
+ c:identifier="GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST"
+ glib:nick="hanc-sdtv-audio-data-2-last">
+ </member>
+ </enumeration>
+ <enumeration name="VideoAncillaryDID16"
+ version="1.16"
+ glib:type-name="GstVideoAncillaryDID16"
+ glib:get-type="gst_video_ancillary_di_d16_get_type"
+ c:type="GstVideoAncillaryDID16">
+ <doc xml:space="preserve">Some know types of Ancillary Data identifiers.</doc>
+ <member name="708"
+ value="24833"
+ c:identifier="GST_VIDEO_ANCILLARY_DID16_S334_EIA_708"
+ glib:nick="708">
+ <doc xml:space="preserve">CEA 708 Ancillary data according to SMPTE 334</doc>
+ </member>
+ <member name="608"
+ value="24834"
+ c:identifier="GST_VIDEO_ANCILLARY_DID16_S334_EIA_608"
+ glib:nick="608">
+ <doc xml:space="preserve">CEA 608 Ancillary data according to SMPTE 334</doc>
+ </member>
+ </enumeration>
<bitfield name="VideoBufferFlags"
glib:type-name="GstVideoBufferFlags"
glib:get-type="gst_video_buffer_flags_get_type"
@@ -1991,7 +2603,7 @@ They can conflict with other extended buffer flags.</doc>
c:identifier="GST_VIDEO_BUFFER_FLAG_RFF"
glib:nick="rff">
<doc xml:space="preserve">If the #GstBuffer is interlaced, then the first field
- (as defined by the %GST_VIDEO_BUFFER_TFF flag setting)
+ (as defined by the %GST_VIDEO_BUFFER_FLAG_TFF flag setting)
is repeated.</doc>
</member>
<member name="onefield"
@@ -1999,8 +2611,8 @@ They can conflict with other extended buffer flags.</doc>
c:identifier="GST_VIDEO_BUFFER_FLAG_ONEFIELD"
glib:nick="onefield">
<doc xml:space="preserve">If the #GstBuffer is interlaced, then only the
- first field (as defined by the %GST_VIDEO_BUFFER_TFF
- flag setting) is to be displayed.</doc>
+ first field (as defined by the %GST_VIDEO_BUFFER_FLAG_TFF
+ flag setting) is to be displayed (Since: 1.16).</doc>
</member>
<member name="multiple_view"
value="16777216"
@@ -2021,6 +2633,30 @@ They can conflict with other extended buffer flags.</doc>
frame-by-frame methods, this flag marks the first buffer
in a bundle of frames that belong together.</doc>
</member>
+ <member name="top_field"
+ value="10485760"
+ c:identifier="GST_VIDEO_BUFFER_FLAG_TOP_FIELD"
+ glib:nick="top-field">
+ <doc xml:space="preserve">The video frame has the top field only. This is the
+ same as GST_VIDEO_BUFFER_FLAG_TFF |
+ GST_VIDEO_BUFFER_FLAG_ONEFIELD (Since: 1.16).</doc>
+ </member>
+ <member name="onefield"
+ value="8388608"
+ c:identifier="GST_VIDEO_BUFFER_FLAG_ONEFIELD"
+ glib:nick="onefield">
+ <doc xml:space="preserve">If the #GstBuffer is interlaced, then only the
+ first field (as defined by the %GST_VIDEO_BUFFER_FLAG_TFF
+ flag setting) is to be displayed (Since: 1.16).</doc>
+ </member>
+ <member name="bottom_field"
+ value="8388608"
+ c:identifier="GST_VIDEO_BUFFER_FLAG_BOTTOM_FIELD"
+ glib:nick="bottom-field">
+ <doc xml:space="preserve">The video frame has the bottom field only. This is
+ the same as GST_VIDEO_BUFFER_FLAG_ONEFIELD
+ (GST_VIDEO_BUFFER_FLAG_TFF flag unset) (Since: 1.16).</doc>
+ </member>
<member name="last"
value="268435456"
c:identifier="GST_VIDEO_BUFFER_FLAG_LAST"
@@ -2062,6 +2698,119 @@ supports all the video bufferpool options.</doc>
c:type="GstVideoBufferPoolPrivate"
disguised="1">
</record>
+ <record name="VideoCaptionMeta"
+ c:type="GstVideoCaptionMeta"
+ version="1.16">
+ <doc xml:space="preserve">Extra buffer metadata providing Closed Caption.</doc>
+ <field name="meta" writable="1">
+ <doc xml:space="preserve">parent #GstMeta</doc>
+ <type name="Gst.Meta" c:type="GstMeta"/>
+ </field>
+ <field name="caption_type" writable="1">
+ <doc xml:space="preserve">The type of Closed Caption contained in the meta.</doc>
+ <type name="VideoCaptionType" c:type="GstVideoCaptionType"/>
+ </field>
+ <field name="data" writable="1">
+ <doc xml:space="preserve">The Closed Caption data.</doc>
+ <array length="3" zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </field>
+ <field name="size" writable="1">
+ <doc xml:space="preserve">The size in bytes of @data</doc>
+ <type name="gsize" c:type="gsize"/>
+ </field>
+ <function name="get_info" c:identifier="gst_video_caption_meta_get_info">
+ <return-value transfer-ownership="none">
+ <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
+ </return-value>
+ </function>
+ </record>
+ <enumeration name="VideoCaptionType"
+ version="1.16"
+ glib:type-name="GstVideoCaptionType"
+ glib:get-type="gst_video_caption_type_get_type"
+ c:type="GstVideoCaptionType">
+ <doc xml:space="preserve">The various known types of Closed Caption (CC).</doc>
+ <member name="unknown"
+ value="0"
+ c:identifier="GST_VIDEO_CAPTION_TYPE_UNKNOWN"
+ glib:nick="unknown">
+ <doc xml:space="preserve">Unknown type of CC</doc>
+ </member>
+ <member name="cea608_raw"
+ value="1"
+ c:identifier="GST_VIDEO_CAPTION_TYPE_CEA608_RAW"
+ glib:nick="cea608-raw">
+ <doc xml:space="preserve">CEA-608 as byte pairs. Note that
+ this format is not recommended since is does not specify to
+ which field the caption comes from and therefore assumes
+ it comes from the first field (and that there is no information
+ on the second field). Use @GST_VIDEO_CAPTION_TYPE_CEA708_RAW
+ if you wish to store CEA-608 from two fields and prefix each byte pair
+ with 0xFC for the first field and 0xFD for the second field.</doc>
+ </member>
+ <member name="cea608_s334_1a"
+ value="2"
+ c:identifier="GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A"
+ glib:nick="cea608-s334-1a">
+ <doc xml:space="preserve">CEA-608 as byte triplets as defined
+ in SMPTE S334-1 Annex A. The second and third byte of the byte triplet
+ is the raw CEA608 data, the first byte is a bitfield: The top/7th bit is
+ 0 for the second field, 1 for the first field, bit 6 and 5 are 0 and
+ bits 4 to 0 are a 5 bit unsigned integer that represents the line
+ offset relative to the base-line of the original image format (line 9
+ for 525-line field 1, line 272 for 525-line field 2, line 5 for
+ 625-line field 1 and line 318 for 625-line field 2).</doc>
+ </member>
+ <member name="cea708_raw"
+ value="3"
+ c:identifier="GST_VIDEO_CAPTION_TYPE_CEA708_RAW"
+ glib:nick="cea708-raw">
+ <doc xml:space="preserve">CEA-708 as cc_data byte triplets. They
+ can also contain 608-in-708 and the first byte of each triplet has to
+ be inspected for detecting the type.</doc>
+ </member>
+ <member name="cea708_cdp"
+ value="4"
+ c:identifier="GST_VIDEO_CAPTION_TYPE_CEA708_CDP"
+ glib:nick="cea708-cdp">
+ <doc xml:space="preserve">CEA-708 (and optionally CEA-608) in
+ a CDP (Caption Distribution Packet) defined by SMPTE S-334-2.
+ Contains the whole CDP (starting with 0x9669).</doc>
+ </member>
+ <function name="from_caps"
+ c:identifier="gst_video_caption_type_from_caps"
+ version="1.16">
+ <doc xml:space="preserve">Parses fixed Closed Caption #GstCaps and returns the corresponding caption
+type, or %GST_VIDEO_CAPTION_TYPE_UNKNOWN.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GstVideoCaptionType.</doc>
+ <type name="VideoCaptionType" c:type="GstVideoCaptionType"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <doc xml:space="preserve">Fixed #GstCaps to parse</doc>
+ <type name="Gst.Caps" c:type="const GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="to_caps"
+ c:identifier="gst_video_caption_type_to_caps"
+ version="1.16">
+ <doc xml:space="preserve">Creates new caps corresponding to @type.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">new #GstCaps</doc>
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <doc xml:space="preserve">#GstVideoCaptionType</doc>
+ <type name="VideoCaptionType" c:type="GstVideoCaptionType"/>
+ </parameter>
+ </parameters>
+ </function>
+ </enumeration>
<bitfield name="VideoChromaFlags"
glib:type-name="GstVideoChromaFlags"
glib:get-type="gst_video_chroma_flags_get_type"
@@ -2312,10 +3061,10 @@ encoded form.</doc>
to the library and get back the frame using gst_video_decoder_get_frame()</doc>
<type name="guint32" c:type="guint32"/>
</field>
- <field name="decode_frame_number" writable="1">
+ <field name="decode_frame_number" readable="0" private="1">
<type name="guint32" c:type="guint32"/>
</field>
- <field name="presentation_frame_number" writable="1">
+ <field name="presentation_frame_number" readable="0" private="1">
<type name="guint32" c:type="guint32"/>
</field>
<field name="dts" writable="1">
@@ -2811,8 +3560,8 @@ the component values in range [0.0 .. 1.0] back to their representation in
</parameter>
<parameter name="offset"
direction="out"
- caller-allocates="0"
- transfer-ownership="full">
+ caller-allocates="1"
+ transfer-ownership="none">
<doc xml:space="preserve">output offsets</doc>
<array zero-terminated="0" c:type="gint" fixed-size="4">
<type name="gint" c:type="gint"/>
@@ -2820,8 +3569,8 @@ the component values in range [0.0 .. 1.0] back to their representation in
</parameter>
<parameter name="scale"
direction="out"
- caller-allocates="0"
- transfer-ownership="full">
+ caller-allocates="1"
+ transfer-ownership="none">
<doc xml:space="preserve">output scale</doc>
<array zero-terminated="0" c:type="gint" fixed-size="4">
<type name="gint" c:type="gint"/>
@@ -3593,7 +4342,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>
@@ -3941,6 +4690,45 @@ after which it is considered finished and released.</doc>
</parameter>
</parameters>
</method>
+ <method name="set_interlaced_output_state"
+ c:identifier="gst_video_decoder_set_interlaced_output_state"
+ version="1.16.">
+ <doc xml:space="preserve">Same as #gst_video_decoder_set_output_state() but also allows you to also set
+the interlacing mode.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">the newly configured output state.</doc>
+ <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="decoder" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoDecoder</doc>
+ <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
+ </instance-parameter>
+ <parameter name="fmt" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoFormat</doc>
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="mode" transfer-ownership="none">
+ <doc xml:space="preserve">A #GstVideoInterlaceMode</doc>
+ <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <doc xml:space="preserve">The width in pixels</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <doc xml:space="preserve">The height in pixels</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="reference"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">An optional reference #GstVideoCodecState</doc>
+ <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="set_latency" c:identifier="gst_video_decoder_set_latency">
<doc xml:space="preserve">Lets #GstVideoDecoder sub-classes tell the baseclass what the decoder
latency is. Will also post a LATENCY message on the bus so the pipeline
@@ -5005,7 +5793,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>
@@ -5018,7 +5806,7 @@ used</doc>
</return-value>
<parameters>
<instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEnccoder</doc>
+ <doc xml:space="preserve">a #GstVideoEncoder</doc>
<type name="VideoEncoder" c:type="GstVideoEncoder*"/>
</instance-parameter>
<parameter name="frame_number" transfer-ownership="none">
@@ -5901,7 +6689,10 @@ to implement frame dropping.</doc>
glib:type-name="GstVideoFormat"
glib:get-type="gst_video_format_get_type"
c:type="GstVideoFormat">
- <doc xml:space="preserve">Enum value describing the most common video formats.</doc>
+ <doc xml:space="preserve">Enum value describing the most common video formats.
+
+See the [GStreamer raw video format design document](https://gstreamer.freedesktop.org/documentation/design/mediatype-video-raw.html#formats)
+for details about the layout and packing of these formats in memory.</doc>
<member name="unknown"
value="0"
c:identifier="GST_VIDEO_FORMAT_UNKNOWN"
@@ -5999,13 +6790,13 @@ to implement frame dropping.</doc>
value="15"
c:identifier="GST_VIDEO_FORMAT_RGB"
glib:nick="rgb">
- <doc xml:space="preserve">rgb</doc>
+ <doc xml:space="preserve">RGB packed into 24 bits without padding (`R-G-B-R-G-B`)</doc>
</member>
<member name="bgr"
value="16"
c:identifier="GST_VIDEO_FORMAT_BGR"
glib:nick="bgr">
- <doc xml:space="preserve">reverse rgb</doc>
+ <doc xml:space="preserve">reverse RGB packed into 24 bits without padding (`B-G-R-B-G-R`)</doc>
</member>
<member name="y41b"
value="17"
@@ -6391,6 +7182,24 @@ to implement frame dropping.</doc>
glib:nick="nv16-10le32">
<doc xml:space="preserve">10-bit variant of @GST_VIDEO_FORMAT_NV16, packed into 32bit words (MSB 2 bits padding) (Since: 1.14)</doc>
</member>
+ <member name="nv12_10le40"
+ value="81"
+ c:identifier="GST_VIDEO_FORMAT_NV12_10LE40"
+ glib:nick="nv12-10le40">
+ <doc xml:space="preserve">Fully packed variant of NV12_10LE32 (Since: 1.16)</doc>
+ </member>
+ <member name="y210"
+ value="82"
+ c:identifier="GST_VIDEO_FORMAT_Y210"
+ glib:nick="y210">
+ <doc xml:space="preserve">packed 4:2:2 YUV, 10 bits per channel (Since: 1.16)</doc>
+ </member>
+ <member name="y410"
+ value="83"
+ c:identifier="GST_VIDEO_FORMAT_Y410"
+ glib:nick="y410">
+ <doc xml:space="preserve">packed 4:4:4 YUV, 10 bits per channel(A-V-Y-U...) (Since: 1.16)</doc>
+ </member>
<function name="from_fourcc" c:identifier="gst_video_format_from_fourcc">
<doc xml:space="preserve">Converts a FOURCC value into the corresponding #GstVideoFormat.
If the FOURCC cannot be represented by #GstVideoFormat,
@@ -7081,6 +7890,28 @@ All video planes of @buffer will be mapped and the pointers will be set in
<doc xml:space="preserve">The video frame is the first
in a set of corresponding views provided as sequential frames.</doc>
</member>
+ <member name="top_field"
+ value="10"
+ c:identifier="GST_VIDEO_FRAME_FLAG_TOP_FIELD"
+ glib:nick="top-field">
+ <doc xml:space="preserve">The video frame has the top field only. This
+ is the same as GST_VIDEO_FRAME_FLAG_TFF | GST_VIDEO_FRAME_FLAG_ONEFIELD
+ (Since: 1.16).</doc>
+ </member>
+ <member name="onefield"
+ value="8"
+ c:identifier="GST_VIDEO_FRAME_FLAG_ONEFIELD"
+ glib:nick="onefield">
+ <doc xml:space="preserve">The video frame has one field</doc>
+ </member>
+ <member name="bottom_field"
+ value="8"
+ c:identifier="GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD"
+ glib:nick="bottom-field">
+ <doc xml:space="preserve">The video frame has the bottom field
+ only. This is the same as GST_VIDEO_FRAME_FLAG_ONEFIELD
+ (GST_VIDEO_FRAME_FLAG_TFF flag unset) (Since: 1.16).</doc>
+ </member>
</bitfield>
<bitfield name="VideoFrameMapFlags"
version="1.6"
@@ -7523,6 +8354,39 @@ subsampled formats.</doc>
</parameter>
</parameters>
</method>
+ <method name="set_interlaced_format"
+ c:identifier="gst_video_info_set_interlaced_format"
+ version="1.16">
+ <doc xml:space="preserve">Same as #gst_video_info_set_format but also allowing to set the interlaced
+mode.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%FALSE if the returned video info is invalid, e.g. because the
+ size of a frame can't be represented as a 32 bit integer.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="info" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoInfo</doc>
+ <type name="VideoInfo" c:type="GstVideoInfo*"/>
+ </instance-parameter>
+ <parameter name="format" transfer-ownership="none">
+ <doc xml:space="preserve">the format</doc>
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="mode" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoInterlaceMode</doc>
+ <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <doc xml:space="preserve">a width</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <doc xml:space="preserve">a height</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="to_caps" c:identifier="gst_video_info_to_caps">
<doc xml:space="preserve">Convert the values of @info into a #GstCaps.</doc>
<return-value transfer-ownership="full">
@@ -7575,6 +8439,16 @@ mode of the stream.</doc>
height property. This mode requires multiple GstVideoMeta metadata
to describe the fields.</doc>
</member>
+ <member name="alternate"
+ value="4"
+ c:identifier="GST_VIDEO_INTERLACE_MODE_ALTERNATE"
+ glib:nick="alternate">
+ <doc xml:space="preserve">1 field is stored in one buffer,
+ @GST_VIDEO_BUFFER_FLAG_TF or @GST_VIDEO_BUFFER_FLAG_BF indicates if
+ the buffer is carrying the top or bottom field, respectively. The top and
+ bottom buffers are expected to alternate in the pipeline, with this mode
+ (Since: 1.16).</doc>
+ </member>
<function name="from_string"
c:identifier="gst_video_interlace_mode_from_string"
version="1.6">
@@ -7828,7 +8702,7 @@ first byte of the plane and the stride of the plane.</doc>
c:type="GstVideoMultiviewFlags">
<doc xml:space="preserve">GstVideoMultiviewFlags are used to indicate extra properties of a
stereo/multiview stream beyond the frame layout and buffer mapping
-that is conveyed in the #GstMultiviewMode.</doc>
+that is conveyed in the #GstVideoMultiviewMode.</doc>
<member name="none"
value="0"
c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_NONE"
@@ -9228,7 +10102,7 @@ This API serves two main purposes:
Together, this allows existing overlay elements to easily handle raw
and non-raw video as input in without major changes (once the overlays
-have been put into a #GstOverlayComposition object anyway) - for raw
+have been put into a #GstVideoOverlayComposition object anyway) - for raw
video the overlay can just use the blending function to blend the data
on top of the video, and for surface buffers it can just attach them to
the buffer and let the sink render the overlays.</doc>
@@ -9411,25 +10285,30 @@ contained in the rectangles are not copied.</doc>
</return-value>
</function>
</record>
- <enumeration name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags">
+ <bitfield name="VideoOverlayFormatFlags"
+ glib:type-name="GstVideoOverlayFormatFlags"
+ glib:get-type="gst_video_overlay_format_flags_get_type"
+ c:type="GstVideoOverlayFormatFlags">
<doc xml:space="preserve">Overlay format flags.</doc>
<member name="none"
value="0"
- c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE">
+ c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE"
+ glib:nick="none">
<doc xml:space="preserve">no flags</doc>
</member>
<member name="premultiplied_alpha"
value="1"
- c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA">
+ c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA"
+ glib:nick="premultiplied-alpha">
<doc xml:space="preserve">RGB are premultiplied by A/255.</doc>
</member>
<member name="global_alpha"
value="2"
- c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA">
+ c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA"
+ glib:nick="global-alpha">
<doc xml:space="preserve">a global-alpha value != 1 is set.</doc>
</member>
- </enumeration>
+ </bitfield>
<record name="VideoOverlayInterface"
c:type="GstVideoOverlayInterface"
glib:is-gtype-struct-for="VideoOverlay">
@@ -9510,10 +10389,6 @@ contained in the rectangles are not copied.</doc>
</callback>
</field>
</record>
- <record name="VideoOverlayProperties"
- c:type="GstVideoOverlayProperties"
- disguised="1">
- </record>
<record name="VideoOverlayRectangle"
c:type="GstVideoOverlayRectangle"
glib:type-name="GstVideoOverlayRectangle"
@@ -10098,6 +10973,7 @@ See also: gst_video_region_of_interest_meta_add_param()</doc-version>
c:type="GstVideoRegionOfInterestMeta*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
+ <doc xml:space="preserve">a name.</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
@@ -10499,7 +11375,7 @@ be scaled to @out_size destination lines/pixels.
pixel. If n_taps is 0, this function chooses a good value automatically based
on the @method and @in_size/@out_size.</doc>
<return-value>
- <doc xml:space="preserve">a #GstVideoResample</doc>
+ <doc xml:space="preserve">a #GstVideoScaler</doc>
<type name="VideoScaler" c:type="GstVideoScaler*"/>
</return-value>
<parameters>
@@ -10744,7 +11620,7 @@ These values are *NOT* automatically normalized.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new #GstVideoTimeCode with the given values.
The values are not checked for being in a valid range. To see if your
-timecode actually has valid content, use #gst_video_time_code_is_valid.</doc>
+timecode actually has valid content, use gst_video_time_code_is_valid().</doc>
<type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
</return-value>
<parameters>
@@ -10790,7 +11666,7 @@ timecode actually has valid content, use #gst_video_time_code_is_valid.</doc>
c:identifier="gst_video_time_code_new_empty"
version="1.10">
<return-value transfer-ownership="full">
- <doc xml:space="preserve">a new empty #GstVideoTimeCode</doc>
+ <doc xml:space="preserve">a new empty, invalid #GstVideoTimeCode</doc>
<type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
</return-value>
</constructor>
@@ -10798,9 +11674,46 @@ timecode actually has valid content, use #gst_video_time_code_is_valid.</doc>
c:identifier="gst_video_time_code_new_from_date_time"
version="1.12">
<doc xml:space="preserve">The resulting config-&gt;latest_daily_jam is set to
+midnight, and timecode is set to the given time.
+
+This might return a completely invalid timecode, use
+gst_video_time_code_new_from_date_time_full() to ensure
+that you would get %NULL instead in that case.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">the #GstVideoTimeCode representation of @dt.</doc>
+ <type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
+ </return-value>
+ <parameters>
+ <parameter name="fps_n" transfer-ownership="none">
+ <doc xml:space="preserve">Numerator of the frame rate</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="fps_d" transfer-ownership="none">
+ <doc xml:space="preserve">Denominator of the frame rate</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="dt" transfer-ownership="none">
+ <doc xml:space="preserve">#GDateTime to convert</doc>
+ <type name="GLib.DateTime" c:type="GDateTime*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <doc xml:space="preserve">#GstVideoTimeCodeFlags</doc>
+ <type name="VideoTimeCodeFlags" c:type="GstVideoTimeCodeFlags"/>
+ </parameter>
+ <parameter name="field_count" transfer-ownership="none">
+ <doc xml:space="preserve">Interlaced video field count</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_from_date_time_full"
+ c:identifier="gst_video_time_code_new_from_date_time_full"
+ version="1.16">
+ <doc xml:space="preserve">The resulting config-&gt;latest_daily_jam is set to
midnight, and timecode is set to the given time.</doc>
<return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GVideoTimeCode representation of @dt.</doc>
+ <doc xml:space="preserve">the #GstVideoTimeCode representation of @dt, or %NULL if
+ no valid timecode could be created.</doc>
<type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
</return-value>
<parameters>
@@ -10829,8 +11742,9 @@ midnight, and timecode is set to the given time.</doc>
<constructor name="new_from_string"
c:identifier="gst_video_time_code_new_from_string"
version="1.12">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoTimeCode from the given string</doc>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve">a new #GstVideoTimeCode from the given string or %NULL
+ if the string could not be passed.</doc>
<type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
</return-value>
<parameters>
@@ -10844,7 +11758,7 @@ midnight, and timecode is set to the given time.</doc>
c:identifier="gst_video_time_code_add_frames"
version="1.10">
<doc xml:space="preserve">Adds or subtracts @frames amount of frames to @tc. tc needs to
-contain valid data, as verified by #gst_video_time_code_is_valid.</doc>
+contain valid data, as verified by gst_video_time_code_is_valid().</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -10869,8 +11783,9 @@ adding ("00:00:00;00", "00:01:00:00") will return "00:01:00;02"
because of drop-frame oddities. However,
adding ("00:09:00;02", "00:01:00:00") will return "00:10:00;00"
because this time we can have an exact minute.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GstVideoTimeCode with @tc_inter added.</doc>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve">A new #GstVideoTimeCode with @tc_inter added or %NULL
+ if the interval can't be added.</doc>
<type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
</return-value>
<parameters>
@@ -10892,7 +11807,8 @@ be dropped. These are then corrected to the next reasonable timecode.</doc>
<method name="clear"
c:identifier="gst_video_time_code_clear"
version="1.10">
- <doc xml:space="preserve">Initializes @tc with empty/zero/NULL values.</doc>
+ <doc xml:space="preserve">Initializes @tc with empty/zero/NULL values and frees any memory
+it might currently use.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -10906,7 +11822,7 @@ be dropped. These are then corrected to the next reasonable timecode.</doc>
<method name="compare"
c:identifier="gst_video_time_code_compare"
version="1.10">
- <doc xml:space="preserve">Compares @tc1 and @tc2 . If both have latest daily jam information, it is
+ <doc xml:space="preserve">Compares @tc1 and @tc2. If both have latest daily jam information, it is
taken into account. Otherwise, it is assumed that the daily jam of both
@tc1 and @tc2 was at the same time. Both time codes must be valid.</doc>
<return-value transfer-ownership="none">
@@ -10915,11 +11831,11 @@ taken into account. Otherwise, it is assumed that the daily jam of both
</return-value>
<parameters>
<instance-parameter name="tc1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoTimeCode</doc>
+ <doc xml:space="preserve">a valid #GstVideoTimeCode</doc>
<type name="VideoTimeCode" c:type="const GstVideoTimeCode*"/>
</instance-parameter>
<parameter name="tc2" transfer-ownership="none">
- <doc xml:space="preserve">another #GstVideoTimeCode</doc>
+ <doc xml:space="preserve">another valid #GstVideoTimeCode</doc>
<type name="VideoTimeCode" c:type="const GstVideoTimeCode*"/>
</parameter>
</parameters>
@@ -10928,7 +11844,7 @@ taken into account. Otherwise, it is assumed that the daily jam of both
c:identifier="gst_video_time_code_copy"
version="1.10">
<return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoTimeCode with the same values as @tc .</doc>
+ <doc xml:space="preserve">a new #GstVideoTimeCode with the same values as @tc.</doc>
<type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
</return-value>
<parameters>
@@ -10942,7 +11858,7 @@ taken into account. Otherwise, it is assumed that the daily jam of both
c:identifier="gst_video_time_code_frames_since_daily_jam"
version="1.10">
<return-value transfer-ownership="none">
- <doc xml:space="preserve">how many frames have passed since the daily jam of @tc .</doc>
+ <doc xml:space="preserve">how many frames have passed since the daily jam of @tc.</doc>
<type name="guint64" c:type="guint64"/>
</return-value>
<parameters>
@@ -10955,7 +11871,7 @@ taken into account. Otherwise, it is assumed that the daily jam of both
<method name="free"
c:identifier="gst_video_time_code_free"
version="1.10">
- <doc xml:space="preserve">Frees @tc .</doc>
+ <doc xml:space="preserve">Frees @tc.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -10969,7 +11885,7 @@ taken into account. Otherwise, it is assumed that the daily jam of both
<method name="increment_frame"
c:identifier="gst_video_time_code_increment_frame"
version="1.10">
- <doc xml:space="preserve">Adds one frame to @tc .</doc>
+ <doc xml:space="preserve">Adds one frame to @tc.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -10988,7 +11904,7 @@ taken into account. Otherwise, it is assumed that the daily jam of both
Initializes @tc with the given values.
The values are not checked for being in a valid range. To see if your
-timecode actually has valid content, use #gst_video_time_code_is_valid.</doc>
+timecode actually has valid content, use gst_video_time_code_is_valid().</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -11038,10 +11954,49 @@ timecode actually has valid content, use #gst_video_time_code_is_valid.</doc>
<method name="init_from_date_time"
c:identifier="gst_video_time_code_init_from_date_time"
version="1.12">
+ <doc xml:space="preserve">The resulting config-&gt;latest_daily_jam is set to midnight, and timecode is
+set to the given time.
+
+Will assert on invalid parameters, use gst_video_time_code_init_from_date_time_full()
+for being able to handle invalid parameters.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="tc" transfer-ownership="none">
+ <doc xml:space="preserve">an uninitialized #GstVideoTimeCode</doc>
+ <type name="VideoTimeCode" c:type="GstVideoTimeCode*"/>
+ </instance-parameter>
+ <parameter name="fps_n" transfer-ownership="none">
+ <doc xml:space="preserve">Numerator of the frame rate</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="fps_d" transfer-ownership="none">
+ <doc xml:space="preserve">Denominator of the frame rate</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="dt" transfer-ownership="none">
+ <doc xml:space="preserve">#GDateTime to convert</doc>
+ <type name="GLib.DateTime" c:type="GDateTime*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <doc xml:space="preserve">#GstVideoTimeCodeFlags</doc>
+ <type name="VideoTimeCodeFlags" c:type="GstVideoTimeCodeFlags"/>
+ </parameter>
+ <parameter name="field_count" transfer-ownership="none">
+ <doc xml:space="preserve">Interlaced video field count</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_from_date_time_full"
+ c:identifier="gst_video_time_code_init_from_date_time_full"
+ version="1.16">
<doc xml:space="preserve">The resulting config-&gt;latest_daily_jam is set to
midnight, and timecode is set to the given time.</doc>
<return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
+ <doc xml:space="preserve">%TRUE if @tc could be correctly initialized to a valid timecode</doc>
+ <type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="tc" transfer-ownership="none">
@@ -11089,7 +12044,7 @@ hours/minutes/seconds/frames not overflowing)</doc>
c:identifier="gst_video_time_code_nsec_since_daily_jam"
version="1.10">
<return-value transfer-ownership="none">
- <doc xml:space="preserve">how many nsec have passed since the daily jam of @tc .</doc>
+ <doc xml:space="preserve">how many nsec have passed since the daily jam of @tc.</doc>
<type name="guint64" c:type="guint64"/>
</return-value>
<parameters>
@@ -11103,8 +12058,9 @@ hours/minutes/seconds/frames not overflowing)</doc>
c:identifier="gst_video_time_code_to_date_time"
version="1.10">
<doc xml:space="preserve">The @tc.config-&gt;latest_daily_jam is required to be non-NULL.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GDateTime representation of @tc.</doc>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve">the #GDateTime representation of @tc or %NULL if @tc
+ has no daily jam.</doc>
<type name="GLib.DateTime" c:type="GDateTime*"/>
</return-value>
<parameters>
@@ -11119,7 +12075,7 @@ hours/minutes/seconds/frames not overflowing)</doc>
version="1.10">
<return-value transfer-ownership="full">
<doc xml:space="preserve">the SMPTE ST 2059-1:2015 string representation of @tc. That will
-take the form hh:mm:ss:ff . The last separator (between seconds and frames)
+take the form hh:mm:ss:ff. The last separator (between seconds and frames)
may vary:
';' for drop-frame, non-interlaced content and for drop-frame interlaced
@@ -11132,7 +12088,7 @@ interlaced field 2
</return-value>
<parameters>
<instance-parameter name="tc" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoTimeCode to convert</doc>
+ <doc xml:space="preserve">A #GstVideoTimeCode to convert</doc>
<type name="VideoTimeCode" c:type="const GstVideoTimeCode*"/>
</instance-parameter>
</parameters>
@@ -11238,8 +12194,9 @@ Will not necessarily correspond to a real timecode (e.g. 00:00:10;00)</doc>
c:identifier="gst_video_time_code_interval_new_from_string"
version="1.12">
<doc xml:space="preserve">@tc_inter_str must only have ":" as separators.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoTimeCodeInterval from the given string</doc>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve">a new #GstVideoTimeCodeInterval from the given string
+ or %NULL if the string could not be passed.</doc>
<type name="VideoTimeCodeInterval"
c:type="GstVideoTimeCodeInterval*"/>
</return-value>
@@ -11269,7 +12226,7 @@ Will not necessarily correspond to a real timecode (e.g. 00:00:10;00)</doc>
c:identifier="gst_video_time_code_interval_copy"
version="1.12">
<return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoTimeCodeInterval with the same values as @tc .</doc>
+ <doc xml:space="preserve">a new #GstVideoTimeCodeInterval with the same values as @tc.</doc>
<type name="VideoTimeCodeInterval"
c:type="GstVideoTimeCodeInterval*"/>
</return-value>
@@ -11284,7 +12241,7 @@ Will not necessarily correspond to a real timecode (e.g. 00:00:10;00)</doc>
<method name="free"
c:identifier="gst_video_time_code_interval_free"
version="1.12">
- <doc xml:space="preserve">Frees @tc .</doc>
+ <doc xml:space="preserve">Frees @tc.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -11442,6 +12399,239 @@ non-linear RGB (R'G'B') and linear RGB</doc>
<doc xml:space="preserve">Gamma 2.19921875. Since: 1.8</doc>
</member>
</enumeration>
+ <record name="VideoVBIEncoder"
+ c:type="GstVideoVBIEncoder"
+ version="1.16"
+ glib:type-name="GstVideoVBIEncoder"
+ glib:get-type="gst_video_vbi_encoder_get_type"
+ c:symbol-prefix="video_vbi_encoder">
+ <doc xml:space="preserve">An encoder for writing ancillary data to the
+Vertical Blanking Interval lines of component signals.</doc>
+ <constructor name="new"
+ c:identifier="gst_video_vbi_encoder_new"
+ version="1.16">
+ <doc xml:space="preserve">Create a new #GstVideoVBIEncoder for the specified @format and @pixel_width.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">The new #GstVideoVBIEncoder or %NULL if the @format and/or @pixel_width
+is not supported.</doc>
+ <type name="VideoVBIEncoder" c:type="GstVideoVBIEncoder*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoFormat</doc>
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="pixel_width" transfer-ownership="none">
+ <doc xml:space="preserve">The width in pixel to use</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="add_ancillary"
+ c:identifier="gst_video_vbi_encoder_add_ancillary"
+ version="1.16">
+ <doc xml:space="preserve">Stores Video Ancillary data, according to SMPTE-291M specification.
+
+Note that the contents of the data are always read as 8bit data (i.e. do not contain
+the parity check bits).</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if enough space was left in the current line, %FALSE
+ otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="encoder" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoVBIEncoder</doc>
+ <type name="VideoVBIEncoder" c:type="GstVideoVBIEncoder*"/>
+ </instance-parameter>
+ <parameter name="composite" transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if composite ADF should be created, component otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="DID" transfer-ownership="none">
+ <doc xml:space="preserve">The Data Identifier</doc>
+ <type name="guint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="SDID_block_number" transfer-ownership="none">
+ <doc xml:space="preserve">The Secondary Data Identifier (if type 2) or the Data
+ Block Number (if type 1)</doc>
+ <type name="guint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">The user data content of the Ancillary packet.
+ Does not contain the ADF, DID, SDID nor CS.</doc>
+ <array length="4" zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </parameter>
+ <parameter name="data_count" transfer-ownership="none">
+ <doc xml:space="preserve">The amount of data (in bytes) in @data (max 255 bytes)</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="copy" c:identifier="gst_video_vbi_encoder_copy">
+ <return-value transfer-ownership="full">
+ <type name="VideoVBIEncoder" c:type="GstVideoVBIEncoder*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="encoder" transfer-ownership="none">
+ <type name="VideoVBIEncoder" c:type="const GstVideoVBIEncoder*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_video_vbi_encoder_free"
+ version="1.16">
+ <doc xml:space="preserve">Frees the @encoder.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="encoder" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoVBIEncoder</doc>
+ <type name="VideoVBIEncoder" c:type="GstVideoVBIEncoder*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="write_line"
+ c:identifier="gst_video_vbi_encoder_write_line">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="encoder" transfer-ownership="none">
+ <type name="VideoVBIEncoder" c:type="GstVideoVBIEncoder*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="guint8" c:type="guint8*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="VideoVBIParser"
+ c:type="GstVideoVBIParser"
+ version="1.16"
+ glib:type-name="GstVideoVBIParser"
+ glib:get-type="gst_video_vbi_parser_get_type"
+ c:symbol-prefix="video_vbi_parser">
+ <doc xml:space="preserve">A parser for detecting and extracting @GstVideoAncillary data from
+Vertical Blanking Interval lines of component signals.</doc>
+ <constructor name="new"
+ c:identifier="gst_video_vbi_parser_new"
+ version="1.16">
+ <doc xml:space="preserve">Create a new #GstVideoVBIParser for the specified @format and @pixel_width.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">The new #GstVideoVBIParser or %NULL if the @format and/or @pixel_width
+is not supported.</doc>
+ <type name="VideoVBIParser" c:type="GstVideoVBIParser*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoFormat</doc>
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="pixel_width" transfer-ownership="none">
+ <doc xml:space="preserve">The width in pixel to use</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="add_line"
+ c:identifier="gst_video_vbi_parser_add_line"
+ version="1.16">
+ <doc xml:space="preserve">Provide a new line of data to the @parser. Call gst_video_vbi_parser_get_ancillary()
+to get the Ancillary data that might be present on that line.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="parser" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoVBIParser</doc>
+ <type name="VideoVBIParser" c:type="GstVideoVBIParser*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">The line of data to parse</doc>
+ <array zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="copy" c:identifier="gst_video_vbi_parser_copy">
+ <return-value transfer-ownership="full">
+ <type name="VideoVBIParser" c:type="GstVideoVBIParser*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="parser" transfer-ownership="none">
+ <type name="VideoVBIParser" c:type="const GstVideoVBIParser*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_video_vbi_parser_free"
+ version="1.16">
+ <doc xml:space="preserve">Frees the @parser.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="parser" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoVBIParser</doc>
+ <type name="VideoVBIParser" c:type="GstVideoVBIParser*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_ancillary"
+ c:identifier="gst_video_vbi_parser_get_ancillary"
+ version="1.16">
+ <doc xml:space="preserve">Parse the line provided previously by gst_video_vbi_parser_add_line().</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%GST_VIDEO_VBI_PARSER_RESULT_OK if ancillary data was found and
+@anc was filled. %GST_VIDEO_VBI_PARSER_RESULT_DONE if there wasn't any
+data.</doc>
+ <type name="VideoVBIParserResult" c:type="GstVideoVBIParserResult"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="parser" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoVBIParser</doc>
+ <type name="VideoVBIParser" c:type="GstVideoVBIParser*"/>
+ </instance-parameter>
+ <parameter name="anc"
+ direction="out"
+ caller-allocates="1"
+ transfer-ownership="none">
+ <doc xml:space="preserve">a #GstVideoAncillary to start the eventual ancillary data</doc>
+ <type name="VideoAncillary" c:type="GstVideoAncillary*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="VideoVBIParserResult"
+ version="1.16"
+ glib:type-name="GstVideoVBIParserResult"
+ glib:get-type="gst_video_vbi_parser_result_get_type"
+ c:type="GstVideoVBIParserResult">
+ <doc xml:space="preserve">Return values for #GstVideoVBIParser</doc>
+ <member name="done"
+ value="0"
+ c:identifier="GST_VIDEO_VBI_PARSER_RESULT_DONE"
+ glib:nick="done">
+ <doc xml:space="preserve">No line were provided, or no more Ancillary data was found.</doc>
+ </member>
+ <member name="ok"
+ value="1"
+ c:identifier="GST_VIDEO_VBI_PARSER_RESULT_OK"
+ glib:nick="ok">
+ <doc xml:space="preserve">A #GstVideoAncillary was found.</doc>
+ </member>
+ <member name="error"
+ value="2"
+ c:identifier="GST_VIDEO_VBI_PARSER_RESULT_ERROR"
+ glib:nick="error">
+ <doc xml:space="preserve">An error occured</doc>
+ </member>
+ </enumeration>
<function name="buffer_add_video_affine_transformation_meta"
c:identifier="gst_buffer_add_video_affine_transformation_meta"
version="1.8">
@@ -11459,6 +12649,36 @@ the given parameters.</doc>
</parameter>
</parameters>
</function>
+ <function name="buffer_add_video_caption_meta"
+ c:identifier="gst_buffer_add_video_caption_meta"
+ version="1.16">
+ <doc xml:space="preserve">Attaches #GstVideoCaptionMeta metadata to @buffer with the given
+parameters.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">the #GstVideoCaptionMeta on @buffer.</doc>
+ <type name="VideoCaptionMeta" c:type="GstVideoCaptionMeta*"/>
+ </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="caption_type" transfer-ownership="none">
+ <doc xml:space="preserve">The type of Closed Caption to add</doc>
+ <type name="VideoCaptionType" c:type="GstVideoCaptionType"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">The Closed Caption data</doc>
+ <array length="3" zero-terminated="0" c:type="guint8*">
+ <type name="guint8" c:type="guint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <doc xml:space="preserve">The size of @data in bytes</doc>
+ <type name="gsize" c:type="gsize"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="buffer_add_video_gl_texture_upload_meta"
c:identifier="gst_buffer_add_video_gl_texture_upload_meta">
<doc xml:space="preserve">Attaches GstVideoGLTextureUploadMeta metadata to @buffer with the given
@@ -11582,11 +12802,15 @@ gst_buffer_add_video_meta_full() with them.</doc>
</parameter>
<parameter name="offset" transfer-ownership="none">
<doc xml:space="preserve">offset of each plane</doc>
- <type name="gsize" c:type="gsize"/>
+ <array zero-terminated="0" c:type="gsize" fixed-size="4">
+ <type name="gsize" c:type="gsize"/>
+ </array>
</parameter>
<parameter name="stride" transfer-ownership="none">
<doc xml:space="preserve">stride of each plane</doc>
- <type name="gint" c:type="gint"/>
+ <array zero-terminated="0" c:type="gint" fixed-size="4">
+ <type name="gint" c:type="gint"/>
+ </array>
</parameter>
</parameters>
</function>
@@ -12531,6 +13755,52 @@ The return value is FALSE in the case of integer overflow or other error.</doc>
</parameter>
</parameters>
</function>
+ <function name="video_caption_meta_api_get_type"
+ c:identifier="gst_video_caption_meta_api_get_type">
+ <return-value transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </return-value>
+ </function>
+ <function name="video_caption_meta_get_info"
+ c:identifier="gst_video_caption_meta_get_info"
+ moved-to="VideoCaptionMeta.get_info">
+ <return-value transfer-ownership="none">
+ <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
+ </return-value>
+ </function>
+ <function name="video_caption_type_from_caps"
+ c:identifier="gst_video_caption_type_from_caps"
+ moved-to="VideoCaptionType.from_caps"
+ version="1.16">
+ <doc xml:space="preserve">Parses fixed Closed Caption #GstCaps and returns the corresponding caption
+type, or %GST_VIDEO_CAPTION_TYPE_UNKNOWN.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GstVideoCaptionType.</doc>
+ <type name="VideoCaptionType" c:type="GstVideoCaptionType"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <doc xml:space="preserve">Fixed #GstCaps to parse</doc>
+ <type name="Gst.Caps" c:type="const GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="video_caption_type_to_caps"
+ c:identifier="gst_video_caption_type_to_caps"
+ moved-to="VideoCaptionType.to_caps"
+ version="1.16">
+ <doc xml:space="preserve">Creates new caps corresponding to @type.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">new #GstCaps</doc>
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <doc xml:space="preserve">#GstVideoCaptionType</doc>
+ <type name="VideoCaptionType" c:type="GstVideoCaptionType"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="video_chroma_from_string"
c:identifier="gst_video_chroma_from_string">
<doc xml:space="preserve">Convert @s to a #GstVideoChromaSite</doc>
@@ -12718,8 +13988,8 @@ the component values in range [0.0 .. 1.0] back to their representation in
</parameter>
<parameter name="offset"
direction="out"
- caller-allocates="0"
- transfer-ownership="full">
+ caller-allocates="1"
+ transfer-ownership="none">
<doc xml:space="preserve">output offsets</doc>
<array zero-terminated="0" c:type="gint" fixed-size="4">
<type name="gint" c:type="gint"/>
@@ -12727,8 +13997,8 @@ the component values in range [0.0 .. 1.0] back to their representation in
</parameter>
<parameter name="scale"
direction="out"
- caller-allocates="0"
- transfer-ownership="full">
+ caller-allocates="1"
+ transfer-ownership="none">
<doc xml:space="preserve">output scale</doc>
<array zero-terminated="0" c:type="gint" fixed-size="4">
<type name="gint" c:type="gint"/>
@@ -13538,7 +14808,7 @@ for use in caps negotiations.</doc>
version="1.6">
<return-value transfer-ownership="none">
<doc xml:space="preserve">A boolean indicating whether the
- #GST_VIDEO_MULTIVIEW_FLAG_HALF_ASPECT flag should be set.
+ #GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT flag should be set.
Utility function that heuristically guess whether a
frame-packed stereoscopic video contains half width/height
@@ -13722,7 +14992,7 @@ be scaled to @out_size destination lines/pixels.
pixel. If n_taps is 0, this function chooses a good value automatically based
on the @method and @in_size/@out_size.</doc>
<return-value>
- <doc xml:space="preserve">a #GstVideoResample</doc>
+ <doc xml:space="preserve">a #GstVideoScaler</doc>
<type name="VideoScaler" c:type="GstVideoScaler*"/>
</return-value>
<parameters>
@@ -13761,7 +15031,7 @@ on the @method and @in_size/@out_size.</doc>
<doc xml:space="preserve">Get the tile index of the tile at coordinates @x and @y in the tiled
image of @x_tiles by @y_tiles.
-Use this method when @mode is of type %GST_VIDEO_TILE_MODE_INDEXED.</doc>
+Use this method when @mode is of type %GST_VIDEO_TILE_TYPE_INDEXED.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the index of the tile at @x and @y in the tiled image of
@x_tiles by @y_tiles.</doc>
diff --git a/girs/GstWebRTC-1.0.gir b/girs/GstWebRTC-1.0.gir
index 951089f479..fae95eb28a 100644
--- a/girs/GstWebRTC-1.0.gir
+++ b/girs/GstWebRTC-1.0.gir
@@ -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>